请帮忙解释一下下面的程序为什么结果输出是0,0,关于C语言的

#include"stdio.h"structstu{intn;structstu*m;}p[4];intmain(intargc,char*argv[]){inti;f... #include "stdio.h"struct stu
{
int n;struct stu *m;
}p[4];
int main(int argc, char* argv[])
{
int i;for(i=0;i<2;i++)
{
p[i].n=i;p[i].m=&p[i+1];
}p[i].m=p;
printf("%d,%d\n",(p[1].m)->n,p[2].m->n);
return 0;}
请解释清楚~谢谢了~
展开
 我来答
kingboy5555
2012-09-30 · TA获得超过224个赞
知道答主
回答量:163
采纳率:0%
帮助的人:145万
展开全部
看你的代码排版看到头晕。p[1].m->n 的m为第三个元素,n未初始化,全局变量默认为0。,p[2].m->n的m为第一个元素,n在循环中被赋值为0。

眼睛有点痛
更多追问追答
追问
啊?n为全局变量?怎么判断的哦?(p[1].m)->n,p[2].m->n这个加了括号和没加括号有什么区别?
追答
p[4]是在main函数之外定义的啊,不是全局变量吗?加括号和不加括号没什么区别,只是给文件增加两个字节而已
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式