検索

ホームページ  >  に質問  >  本文

c++ - C语言有关结构体的问题

上机运行结果是1 2,求解释
struct har
{ int x, y; struct har *p;} h[2];
main()
{

h[0].x=1;
h[0].y=2;
h[1].x=3;
h[1].y=4;
h[0].p=h[1].p=h;
printf("%d %d \n",(h[0].p)->x,(h[1].p)->y);
system("pause");
return 0;

}

大家讲道理大家讲道理2772日前391

全員に返信(3)返信します

  • 黄舟

    黄舟2017-04-17 14:57:04

    h == &h[0]
    h[1].p == h == &h[0]
    h[0].p == h[1].p == &h[0 ]
    同じアドレス h、つまり &h[0] を指します。結果は明らかです。

    返事
    0
  • 怪我咯

    怪我咯2017-04-17 14:57:04

    作成者は、次のように h[0].p=h+0; を代入することで、希望する答えを得ることができます。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-17 14:57:04

    p は構造体配列の先頭を指し、もちろん h[0] の内容を出力します。

    返事
    0
  • キャンセル返事