亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有關sizeof(),麻煩大佬幫忙分析一下!

有關sizeof(),麻煩大佬幫忙分析一下!

侃侃爾雅 2021-10-22 19:15:52
我定義了一個結構體A,又用它定義了個結構體數組A a[];沒有指明數組a的大小,int m=sizeof(a)/sizeof(A);報錯:error C2070: illegal sizeof operand我錯哪里了?數組沒有指明大小,所以才要用sizeof來找大小的嘛,,,我試了下,我給數組a賦值,也就是初始化后,就沒有報錯了,,,,不知道問題是不是就是數組里沒東西導致sizeof不可用啊\\、?
查看完整描述

2 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

誰說指針不能用sizeof了,VC里sizeof任意指針結果都為4。

關鍵是你這里沒指明數組大小,sizeof顯然沒意義,出錯是正常的。

查看完整回答
反對 回復 2021-10-24
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

語法格式 sizeof 有三種語法形式
1:用于數據類型
sizeof( type_name ); // sizeof( 類型 );
2: 用于變量
sizeof ( object ); // sizeof( 對象 );
sizeof object; // sizeof 對象;

3:sizeof的使用:sizeof操作符以字節形式給出了其操作數的存儲大小.

sizeof操作符不能用于函數類型,不完全類型或位字段。不完全類型指具有未知存儲大小 的數據類型,如未知存儲大小的數組類型、未知內容的結構或聯合類型、void類型等。

 sizeof的結果:sizeof操作符的結果類型是size_t,它在頭文件中typedef為unsigned int類 型。該類型保證能容納實現所建立的最大對象的字節大小。

  int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、float、double、long double類型的sizeof 在ANSI C中沒有具體規定,大小依賴于實現,一般可能分別為2、2、2、2、4、4、4、8、10。

  當操作數是指針時,sizeof依賴于編譯器。near類指針字節數為2,far、huge類指針字節數為4。一般Unix的指針字節數為4。

  當操作數具有數組類型時,其結果是數組的總字節數,聯合類型操作數的sizeof是其最大字節成員的字節數。

  結構類型操作數的sizeof是這種類型對象的總字節數,包括任何墊補在內.

  如果操作數是函數中的數組形參或函數類型的形參,sizeof給出其指針的大小。



查看完整回答
反對 回復 2021-10-24
  • 2 回答
  • 0 關注
  • 340 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號