看征服C指针,在p131关于sizeof()求数组长度这一知识点做了一个小测试,程序代码如下:
#include <stdio.h>
void func( int str[])
{
printf("the length of the array is %d\n",sizeof(str));
}
int main()
{
int array[]={1,2,3,4,5,6} ;
func(array);
printf("the length of the array is %d\n",sizeof(array));
system("pause");
return 0;
}
输出结果如下:
看到这个结果,很开心,也证实了数组作为函数参数时,传递的只是指向数组开始元素的指针而已。所以在func函数中str只是指向int的指针,在main()函数中,使用数组作为sizeof运算符的操作符时,“数组解读成指针”的规则就会被抑制,此时返回的是数组全体的大小。所以有了上面的结果~