#include <stdio.h>
int a[3] = {1,2,3};
void cal(int* item){
printf("Length(inside) is %lu\n", sizeof(item)/sizeof(item[0]));
}
int main(){
printf("Length(outside) is %lu\n", sizeof(a)/sizeof(int));
cal(a);
}
上面的代碼出來,其結果是計數數組長度,答案是錯的
Length(outside) is 3
Length(inside) is 2
然而,這是錯誤的,因爲他們都應該是3,什麼是錯的用我的代碼?
指針的大小是指針的大小,而不是指向的指針大小。如果你需要數組的長度,你需要將它作爲參數傳遞給函數。 –