数组名字取地址变成数组指针
1.一维数组名字取地址,变成一维数组指针,加1跳一个一维数组。
int a[10];
a+1 跳一个整型元素,是a[1]的地址
a和a+1相差一个元素,4个字节
&a 就变成了一个一位数组指针,是int(*p)[10]类型的。
(&a)+1 和 &a 相差一个数组即10个元素40个字节。
int main()
{
int a[10];
printf("a=%p\n", a);
printf("a+1=%p\n", a + 1);
printf("&a=%p\n", &a);
printf("&a+1=%p\n", &a + 1);
return 0;
}


2.二维数组
int a[4][5];
a+1跳5个整型
(&a)+1跳4行5列(80个字节)

文章详细阐述了一维数组和二维数组在取地址后作为指针的行为,说明了数组名实际上是一个常量指针,加1操作在不同维度数组中的含义。同时对比了数组名和指针变量的相同点(如都指向首元素地址)和不同点(如数组名不可赋值,对二者取地址结果不同)。
最低0.47元/天 解锁文章
232

被折叠的 条评论
为什么被折叠?



