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

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

sizeof是如何計算數組大小的

sizeof是如何計算數組大小的

慕碼人8056858 2019-04-19 16:29:57
char*ptr;chararr[10];sizeof(ptr)=4;sizeof(arr)=10;請問是如何計算數組大小的?這里只是把地址傳給sizeof啊
查看完整描述

2 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

嚴格講,
sizeof(arr)=10;這里只是把地址傳給sizeof啊
你這句話是錯誤的,你傳的是數組名,數組名不等價于地址。
編譯器用數組名標記數組的屬性,比如具有確定數量的元素。而你說的地址,也就是指針,只是一個標量值。
只有當數組名在表達式中使用時,編譯器才會為它產生一個指針常量。而只有以下兩種情況,才不被當做指針常量:
sizeof(數組名):返回數組長度(所占的字節數,不是數組元素個數),而不是指向數組的指針的長度。
&數組名:產生一個指向數組的指針,而不是一個指向某個指針常量的指針。
以上內容來源:《C和指針》P141~142
                            
查看完整回答
反對 回復 2019-04-19
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

sizeof不是函數,而是編譯器提供的操作符,由編譯器計算并返回一個數據結構的大小。
在這里,編譯器知道arr的大?。ǚ駝t它怎么為其分配內存呢?),所以能夠返回正確的結果10。
                            
查看完整回答
反對 回復 2019-04-19
  • 2 回答
  • 0 關注
  • 2478 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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