关于数组名
数组名一般可以当指针来用,但是有两种情况例外。
int arr[5]={1,2,3,4,5};
printf("%d\n",*arr); ----->打印出1
void func(int *a){}
func(arr); ------->作为int *的指针用
void func1(int a[],int size){}
func(arr,5); ------->将这个数组做函数实参时,其实就是数组名做int *的指针,加上个元素个数。
两个例外:
sizeof(arr) 这时不是计算int *的大小,而是整个数组的大小。
&arr 对数组名取地址得到的指针的步长是整个数组的大小,而不是int*的大小。