c++ - C语言有关结构体的问题
大家讲道理
大家讲道理 2017-04-17 14:55:04
0
3
388

上机运行结果是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;

}

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(3)
黄舟

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

いいねを押す +0
刘奇

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

いいねを押す +0
左手右手慢动作

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート