关于数组指针的初始化
本帖最后由 HaibaraA1 于 2021-2-7 16:51 编辑在百度百科和csdn上看到两种不同的方法,想知道哪种是对的。
百度百科:
{
int a;
int (*p)=a;
}
csdn:
{
int ;
int (*pp);
pp=b;(这里是不是应该pp=&b呢?)
} 第二个你漏写了一个数组名
其实,两个是一样的,只是第二个的指针名是 pp 而已 本帖最后由 一叶枫残 于 2021-2-7 14:05 编辑
第二个应该是
int b;
int (*pp);
pp=b;
关于pp=&b,其实数组的名字b就是数组第一个的地址(&b),看下面代码运行的结果你就应该懂了
#include <stdio.h>
int main()
{
int b;
int (*pp);
pp=b;
printf("b的地址:%x\n" , b);
printf("b的地址:%x\n" , &b);
printf("指针pp的值:%x\n" , pp);
return 0;
}
b的地址:62fde0
b的地址:62fde0
指针pp的值:62fde0
其实第一个与第二个本质是相同的,只是定义的数组大小不同且变量名不同而已
加油!! 第二个的数组定义时数组名不能省略,数组名默认指数组的第一个元素的地址,所以不需要用&取址,其他的都是一样的 我确实漏写了个数组名hhh,感谢
页:
[1]