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

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

當C / C ++中的數字常量以0開頭時,這是什么意思?

當C / C ++中的數字常量以0開頭時,這是什么意思?

C++ C
婷婷同學_ 2019-10-22 21:56:12
好的...所以我有一個愚蠢的想法,嘗試將值0123放入一個整數,只是想知道會發生什么,我以為我在打印該值時會得到123,但我卻得到了83 ...有什么想法嗎?使該值變為83的編譯器/內存內部發生了什么?我在C ++和C中使用GCC編譯器進行了嘗試,還嘗試了使用float產生相同的結果。
查看完整描述

4 回答

?
智慧大石

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

根據[lex.icon]中的C ++標準,整數文字可以分為3種類型:十進制文字,八進制文字和十六進制文字,每種類型都可以具有后綴,表示長度和長度類型

十進制字面量必須以非零數字開頭,而八進制字面量必須以0開頭,十六進制字面量具有0x和0X,在前綴(對于八進制和十六進制字面量)之后,在相應基數中無法表示的任何數字都應觸發編譯錯誤(例如,導致error C2041: illegal digit '9' for base '8'和在其他編譯器中的09prog.cpp:6:15: error: invalid digit "9" in octal constant),因為如果整數文字無法表示,則程序會格式錯誤。


查看完整回答
反對 回復 2019-10-22
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

0123是一個八進制常量(以8為底)。83是十進制等效項。


查看完整回答
反對 回復 2019-10-22
  • 4 回答
  • 0 關注
  • 1985 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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