将数组作为函数的形参,想在函数中计算数组大小。
#include<iostream>
using namespace std;
int arraySize(int a[]) {
int n = sizeof(a) / sizeof(a[0]);
return n;
}
int main() {
int a[] = { 1,2,3,4,5};
cout << "size of a[]=" << arraySize(a) << endl;
}
但是输出的结果却是:
原因:函数参数是传值,传进来的只是一个指针,没有数组大小的任何信息。建议将数组大小作为函数的一个参数传给函数。
int arraySize(int a[])
//等效于
int arraySize(int *a)
在main()函数中是可以通过sizeof()来计算数组大小的。
#include<iostream>
using namespace std;
int main() {
int a[] = { 1,2,3,4,5};
int n = sizeof(a) / sizeof(a[0]);
cout << "size of a[]="<<n<<endl;
return 0;
}
输出结果如下: