【发布时间】:2013-07-24 12:05:43
【问题描述】:
我尝试在 C++ 中将 C++ 数组作为参数传递,但遇到了一些问题。我通过this 仍然无法解决问题。
C++
#include<iostream>
using namespace std;
void comb(int a[])
{
int alen = sizeof(a)/sizeof(*a);
cout << alen << endl;
/* Since 'I' know the size of a[] */
for(int i = 0; i < 7; i++)
cout << a[i] << " ";
cout << endl;
}
int main()
{
int a[] = {1,2,3,4,5,6,7};
comb(a);
}
Output
2
1 2 3 4 5 6 7
我的问题是数组的大小怎么会被计算为 2?
【问题讨论】:
-
输出怎么是2?
-
如果指针大小是
int大小的两倍 -
逻辑不应该是
sizeof(a)/sizeof(a[0])吗? -
@syb0rg,真的没关系。
-
@syb0rg 我正在使用 *a 访问同一个元素
标签: c++