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

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

C+運算符中的隱式類型轉換規則

C+運算符中的隱式類型轉換規則

C++
至尊寶的傳說 2019-06-18 10:55:43
我想更好地知道什么時候該投。C+中的隱式類型轉換規則是什么,例如,int + float = ?int * float = ?float * int = ?int / float = ?float / int = ?int / int = ?int ^ float = ?等等.。表達式是否總是被計算為更精確的類型?對于Java,規則不同嗎?如果我說錯了這個問題,請糾正我。C+運算符中的隱式類型轉換規則
查看完整描述

3 回答

?
長風秋雁

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

由于其他答案不涉及C+11中的規則,這里有一個。摘自C+11標準(N 3337草案)第5/9節:

此模式稱為常用算術變換,定義如下:

-如果任一操作數為范圍枚舉類型,則不執行轉換;如果其他操作數沒有相同類型,則表達式格式不正確。

-如果其中一個操作數是長雙操作數,則另一個操作數應轉換為長雙操作數。

-否則,如果任一操作數為雙,則另一操作數應轉換為雙操作數。

-否則,如果其中一個操作數是浮動的,則另一個操作數應轉換為浮動操作數。

-否則,應在兩個操作數上進行整體晉升。則下列規則適用于促進的操作數:

-如果兩個操作數具有相同的類型,則不需要進一步轉換。

-否則,如果兩個操作數都具有符號整數類型或兩者都具有無符號整數類型,則具有較小整數轉換級別類型的操作數應轉換為級別較大的操作數類型。

-否則,如果具有無符號整數類型的操作數的秩大于或等于另一個操作數類型的秩,則具有符號整數類型的操作數將轉換為具有無符號整數類型的操作數類型。

-否則,如果帶符號整數類型的操作數的類型可以用無符號整數類型表示操作數類型的所有值,則具有無符號整數類型的操作數將轉換為帶符號整數類型的操作數類型。

-否則,兩個操作數應轉換為與帶符號整數類型的操作數類型對應的無符號整數類型。

看見這里獲取經常更新的列表。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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