关于数组,一些必会的数组运算
//一维数组
int a[] = {
1,2,3,4};
printf("%d\n",sizeof(a));
// 4*4=16 sizeof(数组名)代表整个数组的长度
printf("%d\n",sizeof(a+0));
// 4 a+0 代表第一个元素的地址
printf("%d\n",sizeof(*a));
// 4 a=&a[0] *a=a[0],第一个元素
printf("%d\n",sizeof(a+1));
// 4 a+1 代表第二个元素的地址
printf("%d\n",sizeof(a[1]));
// 4 a[1] 第二个元素
printf("%d\n",sizeof(&a));
// 4 &a 代表取整个数组的地址 另:vc6.0下 结果为 16,错误!
//(&为取地址符,地址长度为4个字节或者8个字节,跟平台有关,32位平台地址为4个字节)
printf("%d\n",sizeof(&a+1));
// 4 &a+1 表示指向下一个数组
printf("%d\n",sizeof(&a[0]));
// 4 &a[0] 第一个元素的地址
printf("%d\n",sizeof(&a[0]+1));
// 4 &a[0]+1 第2个元素的地址
解释:
sizeof(