【发布时间】:2019-12-14 07:19:15
【问题描述】:
我对数组(int、char 等)的大小有一点问题。首先我需要告诉你,我是 C++ 的初学者,有一些其他编程语言的背景。现在让我们考虑以下程序:
int IntArrayLength(int Array[]){
return (sizeof(Array) / sizeof(Array[0]));
}
int main(){
int array[] = {10,20,30,40,50};
cout << (sizeof(array) / sizeof(array[0])) << endl; // returns 5, which is the correct value
cout << IntArrayLength(array) << endl; // returns 2, no matter how many elements are in the array
}
为什么函数IntArrayLength返回值2,而表达式(sizeof(array) / sizeof(array[0]))返回正确的值,而不是放入函数中。
提前致谢!
【问题讨论】:
-
C++17有一个功能:std::size -
你可能想改用
std::array而不是c数组。