2 回答

TA貢獻(xiàn)1772條經(jīng)驗 獲得超6個贊
誰說指針不能用sizeof了,VC里sizeof任意指針結(jié)果都為4。
關(guān)鍵是你這里沒指明數(shù)組大小,sizeof顯然沒意義,出錯是正常的。

TA貢獻(xiàn)1951條經(jīng)驗 獲得超3個贊
語法格式 sizeof 有三種語法形式
1:用于數(shù)據(jù)類型
sizeof( type_name ); // sizeof( 類型 );
2: 用于變量
sizeof ( object ); // sizeof( 對象 );
sizeof object; // sizeof 對象;
3:sizeof的使用:sizeof操作符以字節(jié)形式給出了其操作數(shù)的存儲大小.
sizeof操作符不能用于函數(shù)類型,不完全類型或位字段。不完全類型指具有未知存儲大小 的數(shù)據(jù)類型,如未知存儲大小的數(shù)組類型、未知內(nèi)容的結(jié)構(gòu)或聯(lián)合類型、void類型等。
sizeof的結(jié)果:sizeof操作符的結(jié)果類型是size_t,它在頭文件中typedef為unsigned int類 型。該類型保證能容納實現(xiàn)所建立的最大對象的字節(jié)大小。
int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、float、double、long double類型的sizeof 在ANSI C中沒有具體規(guī)定,大小依賴于實現(xiàn),一般可能分別為2、2、2、2、4、4、4、8、10。
當(dāng)操作數(shù)是指針時,sizeof依賴于編譯器。near類指針字節(jié)數(shù)為2,far、huge類指針字節(jié)數(shù)為4。一般Unix的指針字節(jié)數(shù)為4。
當(dāng)操作數(shù)具有數(shù)組類型時,其結(jié)果是數(shù)組的總字節(jié)數(shù),聯(lián)合類型操作數(shù)的sizeof是其最大字節(jié)成員的字節(jié)數(shù)。
結(jié)構(gòu)類型操作數(shù)的sizeof是這種類型對象的總字節(jié)數(shù),包括任何墊補(bǔ)在內(nèi).
如果操作數(shù)是函數(shù)中的數(shù)組形參或函數(shù)類型的形參,sizeof給出其指針的大小。
添加回答
舉報