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

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

當在多個字符上使用時,單引號在C+中會做什么?

當在多個字符上使用時,單引號在C+中會做什么?

C++
慕的地6264312 2019-06-16 16:25:45
當在多個字符上使用時,單引號在C+中會做什么?我對這個代碼很好奇:cout << 'test'; // Note the single quotes.給我的輸出1952805748.我的問題是:輸出是內存中的地址嗎?
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

這是一個多字符的文字。19528057480x74657374,分解為

0x74 -> 't'0x65 -> 'e'0x73 -> 's'0x74 -> 't'

編輯:

C+標準,§2.14.3/1-字符文字

(.)包含多個c-char的普通字符文字是多字符文字。多字符文字具有int類型和實現-de?Ned值。


查看完整回答
反對 回復 2019-06-16
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

不這不是地址。這就是所謂的多字節字符。

通常,這是四個字符合并的ASCII值。

't' == 0x74; 'e' == 0x65; 's' == 0x73; 't' == 0x74;

所以0x74657374是1952805748。

但在其他編譯器上也可以是0x74736574。C和C+標準都說多字節字符的值是實施定義..所以一般來說它的用途是氣餒。


查看完整回答
反對 回復 2019-06-16
?
MYYA

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

包含多個c-char的普通字符文字是多字符文字。多字符文字具有int類型和實現-de?Ned值。

實現定義的行為需要由實現來記錄。例如,在GCC,你可以找到它。這里

編譯器一次對一個多字符常量(一個字符)進行賦值,將每個目標字符的位數所留下的前一個值移動,然后將新字符的位模式截斷為目標字符的寬度。最后的位模式是給出int類型的,因此是有符號的,不管單個字符是否有符號。

檢查解釋本頁想了解更多細節


查看完整回答
反對 回復 2019-06-16
  • 3 回答
  • 0 關注
  • 661 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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