C语言sizeof()函数

如图,为什么同一个数组,一个是在主函数里输出sizeof(n),一个是调用函数输出sizeof(n),为何值会不一样

img

求解!十分感谢!

你对func函数进行数组传参的时候,实际上传过去的是数组的首元素地址,所以你的func函数里的n其实是接收到的一个地址,在64位系统之中一个地址的大小就是8个字节

函数中的n是指针,因此给函数传数组一般都要同时传大小

第一个sizeof计算的事数组的大小
第二个sizeof计算的是指针的大小。形参你写的是用数组来接收,其实本质也是一个指针,并不真是数组。