0
可能重複:
Why sizeof(param_array) is the size of pointer?的數組的sizeof減少,爲什麼
void print(char arr[]){
int i;
printf("%d" , sizeof(arr)); /*print 4**/
}
int main()
{
char arr[]={0,1,2,3,4};
printf("%d" , sizeof(arr)); /*print 5**/
print(arr);
}
當我的陣列發送到功能似乎在1的大小減小什麼發生?
不久前提到:http://stackoverflow.com/questions/11622146/why-sizeofparam-array-is-the-size-of-pointer – chris 2012-07-24 17:21:31
當數組傳遞給函數時,函數參數表示指向數組的第一個元素的指針。因此,當您嘗試在函數中查找大小時,就會得到指針的大小。 – krammer 2012-07-24 17:27:20