x,(h[1].p)->y); system(&q">
84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
上机运行结果是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;
}
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
p指向了结构体数组的最前面,当然打印h[0]的内容。
楼主这样赋值h[0].p=h+0; h[1].p=h+1;可能就会有你想要的答案了。
h == &h[0]h[1].p == h == &h[0]h[0].p == h[1].p == &h[0]指向同一个地址h即&h[0],结果是显然的
p指向了结构体数组的最前面,当然打印h[0]的内容。
楼主这样赋值h[0].p=h+0; h[1].p=h+1;可能就会有你想要的答案了。
h == &h[0]
h[1].p == h == &h[0]
h[0].p == h[1].p == &h[0]
指向同一个地址h即&h[0],结果是显然的