大概很多初学者都不能完全搞懂数组的表示方法
以下我举例说明数组的表示及含义
int num= 10;
int arr [10];
printf("%d\n",sizeof(arr));
printf("%d\n",sizeof(arr+0));
以上两种情况打印出的有何不同?第一个 打印出 40,第二个结果是4,这是因为第一种情况下arr表示整个数组的大小,其中一个数字4个字节,因此当数组有10个元素时, 输出结果为40.
而第二种情况下,arr+0表示数组首元素的地址,因此输出结果为4。
1. printf("%d\n",&arr);
2.printf("%d\n",&arr+1);
3.printf("%p\n",arr);
4.printf("%p\n",arr+1);
运行后结果显示1,3结果相同,而2.4结果不同
实际上,数组arr只有在两种情况下表示整个数组,第一个就是sizeof后单独加arr时,第二种即&arr。