【发布时间】:2011-07-11 21:54:36
【问题描述】:
由于我是编程新手,因此我正在尝试了解有关数组的更多信息。所以我在玩代码的不同部分,并试图了解三件事,sizeof()。如何找到数组的长度,以及如何将数组放入函数(作为参数)?
我的代码是:
#include <iostream>
using namespace std;
void arrayprint(int inarray[])
{
for (int n_i = 0 ; n_i < (sizeof(inarray) / sizeof(int)) ; n_i++)
{
cout << inarray[n_i] << endl;
}
}
int main()
{
int n_array[5];
for (int n_i = 0 ; n_i < (sizeof(n_array) / sizeof(int)) ; n_i++ )
{
cin >> n_array[n_i];
}
arrayprint(n_array);
return 0;
}
似乎sizeof(inarray) / sizeof(int) 在 main 函数中有效,但在 arrayprint 函数中无效。在数组 print 函数中,它的计算结果为 1,而在 main 中,它的计算结果为 5。为什么?
所以我想我想知道它们有什么不同?为什么?
【问题讨论】:
-
这个问题有很多重复,你可以搜索SO或在谷歌中搜索C++中的“数组衰减”
-
你可能会发现这里提到的信息很有用:stackoverflow.com/questions/1328223/… 基本上,我建议你看看 STL 容器,尤其是向量,这是在 C++ 程序中使用数组的首选方法