刚刚代码,发现一个很有趣的问题;

假设已定义结构体数组变量student[2];

代码1;

代码2;

请问代码1和代码2有什么区别?它们的输出结果是怎样的?

根据指针的相关知识,指针变量p的初始化应该是赋给它一个地址;对于数组来说,一个数组的数组名在内存中是占有内存的(这里先不研究这个问题),它保存的是数组首元素的地址,例int a[10];其中a的值是a[0]的地址(a=&a[0]),也就是一个“十六进制数”。所以,代码1的初始化是不合适的,代码2才是正确的初始化方式。

将代码1编译:警告内容如下,“初始化了不相容的指针类型”

 

 

posted on 2017-05-08 17:16  祝融  阅读(406)  评论(0)    收藏  举报