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;
}