C语言| 数组名作为函数参数
sizeof(数组名); 可以求出整个数组在内存中所占的字节数。
被调函数Array_Sum()中,数组array使用sizeof会得到多少?
实参数组a占32字节,实参a传给形参array,只占4字节。
原因如下:
数组名做函数参数时,只是将实参数组的首地址,传给了形参数组。
此时被调函数Array_Sum()中的数组array,本质上是一个指针变量,
里面存放的是主调函数中数组a的地址。
在C语言中,指针变量所占的字节数都是4。
sizeof(array),指针变量非常重要!
【程序代码】
#include <stdio.h>
int Array_Sum(int array[]); //数组声明
int main(void)
{
int a[] = {11, 22, 33, 44, 55, 66, 77, 88};
Array_Sum(a);
return 0;
}
int Array_Sum(int array[])
{
printf("sizeof(array)= %d\n", sizeof(array));
return 0;
}