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

隔江千里
TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
char 類型的每個(gè)數(shù)據(jù)占一個(gè)字節(jié),數(shù)組的話就乘以它的長(zhǎng)度,這道題應(yīng)該是100

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