void Func ( char str[100] ) { sizeof( str ) = 4 } 為什么是等于4,如果沒有函數直接char str[100];
3 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
在C/C++里數組作為參數時傳遞的實際上是指向數組第一個元素的指針,因此sizeof(str)返回的是指針的大小,即4。
注意以下三種形式的參數是完全等價的:
void Func( char str[100]); void Func( char str[]); void Func( char *str); |
因為傳遞的本質上是指針,所以維數也是不必要的。以下調用是完全合法的:
void Func( char str[100]); char ch[10]; Func(ch); |
- 3 回答
- 0 關注
- 320 瀏覽
添加回答
舉報
0/150
提交
取消