c++ int自动转换成无符号变量产生的问题
生活随笔
收集整理的這篇文章主要介紹了
c++ int自动转换成无符号变量产生的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
c++ int自動轉換成無符號變量產生的問題
無符號對象不會小于零,盡管我們不會故意給無符號對象賦一個負值,但可能寫出這樣的代碼。
1.當一個算數表達式中既有無符號數又有int值時,那個int值就會轉換成無符號數。
#include<iostream> using namespace std; int main(){unsigned u = 10;int i = -42;cout<< u + i << endl;//輸出4294967264 }2.用無符號數寫循環,要注意無符號數永遠也不會小于0.
for(unsigned u = 10; u >= 0; --u)//死循環,因為u永遠不可能小于0cout << u << endl;3.string對象的size函數返回的是一個無符號整數。
假設n是一個具有負值的int,則表達式 s.size()<n 判斷結果幾乎肯定是true。
因為負值n會自動轉換成比較大的無符號值。
總結
以上是生活随笔為你收集整理的c++ int自动转换成无符号变量产生的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tsd3dmapper软件使用方法_TO
- 下一篇: 微云服务器失败原因_梦幻西游:服务器发生