关于数组名

数组名一般可以当指针来用,但是有两种情况例外。

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*的大小。

posted @ 2021-01-23 10:15  大牛等等我  阅读(241)  评论(0编辑  收藏  举报