1.数组名是数组首元素的地址
但是有2个例外
1.sizeof(数组名)-数组名表示整个数组-计算的是整个数组的大小,单位是字节
2.&数组名-数组名表示整个数组-取出的是整个数组的地址
#include<stdio.h>
int main()
{
int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
printf("%p\n", &arr);//1 - &arr取出的是数组的地址
printf("%p\n", &arr+1);
printf("%p\n", arr);//2
printf("%p\n", arr+1);
//printf("%p\n", &arr[0]);//3
//int sz = sizeof(arr);
//printf("%d\n", sz);//40
//printf("%p\n", &arr[0]);//%p - 输出的是地址-十六进制
//printf("%p\n", arr);//数组名是数组首元素的地址
//这两个输出的地址一样
return 0;
}
#include<stdio.h>
int main()
{
int arr[10] = { 0 };
int* p1 = arr;
int(*p2)[10] = &arr;//数组指针
printf("%p\n", arr);
printf("%p\n", &arr);
printf("%p\n", p1);
printf("%p\n", p1+1);
printf("%p\n", p2);
printf("%p\n", p2+1);
return 0;
}
版权声明:本文为m0_69576880原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。