目录
1.数组名表示数组首元素地址
例:
#include<stdio.h>
int main ()
{
int arr1[5] = {0,1,2,3,4};
printf("%p\n",arr1);//用数组名作为参数,打印地址
printf("%p\n",&arr1[0]);//取数组首元素地址,并打印
return 0;
}
2.sizeof意外
当数组名作为sizeof参数时,计算的是整个数组大小
例:
#include<stdio.h>
int main()
{
int arr1[5] = { 0,1,2,3,4 };
int sz = sizeof(arr1);
printf("sz = %d", sz);
return 0;
}
3.取数组名地址
例:
#include<stdio.h>
int main()
{
int arr1[5] = { 0,1,2,3,4 };
printf("%p\n", arr1);//取数组首元素地址
printf("%p\n", &arr1);//取整个数组地址
printf("%p\n", &arr1+1);
return 0;
}
解析:如上图,68(8*16^0+6*16^1=104) ,7C(12*16^0+7*16^1=124),相差20个字节,刚好是arr1的字节长,所以&数组名是取的整个数组的地址。