- 函数中无法通过sizeof运算得到数组的大小及维数,因为,数组形参实际上是指针类型。
#include <iostream>
using namespace std;
// 数组作为参数时,退化为简单的指针
void getArrSize(int* arr)
{
cout << "sizeof(arr): " << sizeof(arr) << endl;
cout << "sizeof(*arr): " << sizeof(*arr) << endl;
}
int main()
{
int a[4] = { 0,1,2,3 };
int *pa = a; // 也只是简单的指针,和a不一样
cout << "sizeof(a): " << sizeof(a) << endl;
cout << "sizeof(*a): " << sizeof(*a) << endl;
getArrSize(a);
return 0;
}
输出结果:
因此,无法在函数体内计算数组的大小。