為什么C-Array在傳遞給函數(shù)時(shí)有一個(gè)錯(cuò)誤的size of()值?完整的例子:#include <stdio.h>void test(int arr[]) {
int arrSize = (int)(sizeof(arr) / sizeof(arr[0]));
printf("%d\n", arrSize); // 2 (wrong?!)}int main (int argc, const char * argv[]) {
int point[3] = {50, 30, 12};
int arrSize = (int)(sizeof(point) / sizeof(point[0]));
printf("%d\n", arrSize); // 3 (correct :-) )
test(point);
return 0;}在將其傳遞給函數(shù)之前,size of給出了正確的值。在函數(shù)中的相同數(shù)組上執(zhí)行完全相同的操作會(huì)產(chǎn)生奇怪的結(jié)果。少了一個(gè)元素。為什么?
3 回答

ibeautiful
TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
void test(int arr[])
void test (int* arr)
- 3 回答
- 0 關(guān)注
- 560 瀏覽
添加回答
舉報(bào)
0/150
提交
取消