【发布时间】:2012-11-21 09:56:37
【问题描述】:
我想知道为什么下面代码的输出是 1 和 9。是因为函数大小中未声明的数组吗?如何将“数组大小”分离为函数?
#include "stdafx.h"
#include <iostream>
using namespace std;
int size(int a[])
{
return sizeof a/sizeof a[0];
}
int main()
{
int a[] = {5,2,4,7,1,8,9,10,6};
cout << size(a) << endl;
cout << sizeof a/sizeof a[0] << endl;
system("pause");
return 0;
}
【问题讨论】:
-
当您编写
size(a)时,您传递的是指针而不是数组。由于指针和 int 的大小相同,所以得到 1/1,即 1。 -
maroun 将其发布为答案。因为它是一个。
-
@Maroun85 为什么要评论?这是一个有效的答案。