这里就不讨论一般的数组长度计算了,只说明一下任何数据到了函数的形参中都将退化为指针,所以计算大小的时候,也是计算的指针的大小
直接上代码了
1 // class sizeof测试.cpp : 定义控制台应用程序的入口点。
2 //
3
4 #include "stdafx.h"
5 #include<iostream>
6 using namespace std;
7 int f1(int num[])
8 {
9 return sizeof(num);
10 }
11 int f2(int num[5])
12 {
13 return sizeof(num);
14 }
15
16 int _tmain(int argc, _TCHAR* argv[])
17 {
18 int num[5]={1,2,3,4,5};
19 cout<<sizeof(num)<<endl<<sizeof(f1(num))<<endl<<sizeof(f2(num));
20 return 0;
21 }
vs2010在32位系统中的运行结果是 20,4,4