|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在c++快速入门里,小甲鱼显示的array size是4,但我试了一下显示的是8 求解答. code如下
int addArray( int array[], int n);
int main()
{
int data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int size = sizeof(data) / sizeof(data[0]);
printf("data: %d\n", sizeof(data));
return 0;
}
int addArray( int array[], int n)
{
int sum = 0;
int i;
printf("array: %d\n',sizeof(array));
for( i=0; i<n; i++)
{
sum += array[i];
}
return sum;
}
数组名作为函数参数时,传递的只是数组的首地址.因此在调用addArray函数式,局部变量array是一个int*类型数据,sizeof(array)相当于sizeof(int*).
函数参数array只能获得数组的起始地址,不能获得数组大小.这也是为什么还要单独传递一个int n用来指示数组有多少个元素了.
|
|