详解数组名
对数组名的理解
数组名是数组首元素的地址
有且仅有两个例外
1.sizeof(数组名),这里的数组名不是数组首元素的地址,这里表示整个数组,sizeof(数组名)计算的是整个数组的大小,单位是字节
2.&数组名,这里的数组名表示整个数组,&数组名表示的是整个数组的地址
下面请看一段代码,以理解上述内容.
#include <stdio.h>
int main()
{
int arr[10] = { 0 };
printf("%p\n", arr);//1
printf("%p\n", arr+1);//2
printf("%p\n", &arr[0]);//3
printf("%p\n", &arr[0]+1);//4
printf("%p\n", &arr);//5
printf("%p\n", &arr+1);//6
}
下面是运行结果
由此可知,1,3,5式所打印地址相同,而让其右移一位所跳过的字节数是不同的,因此所打印的地址也不尽相同(2,4式相同,6与2,4不同)