void print(char arr[]){
int i;
printf("%d" , sizeof(arr)); /*print 4**/
}
int main()
{
char arr[]={0,1,2,3,4};
printf("%d" , sizeof(arr)); /*print 5**/
print(arr);
}
当我将数组发送到函数时,似乎大小减少了1.会发生什么?
答案 0 :(得分:3)
因为你在函数中没有真正的数组;它已降级为指针,大小未知。您要求sizeof
一个char*
,在您的平台上,这是4个字节。