本帖最后由 闪电侠 于 2015-7-10 23:00 编辑
sizeof可以计算一个变量或一种类型所占用的存储字节数,比如:- int nums[10]={};
- sizeof(nums);
复制代码 其结果为10 * 4 = 40
但是当把这个数组传入一个函数的时候:
- void test(int nums[] ){
- int n = sizeof(nums);
- }
复制代码 结果就变成了8
为什么会这样呢???
其实原因很简单,因为不管 函数的形参是 int nums[] 还是 int nums[10] 还是 int *nums,最终传入的仅仅只是数组的首地址,而在64位编译器中地址占8个字节。
|
|