c++ int,unsigned int混合表達式類型轉換


測試代碼:

#include<cstdio>
#include<iostream>
using namespace std;
int main() {
    unsigned int a = 3;
    int b=2,c=1;
    if(b<c-a) cout<<"int transform to unsigned int"<<endl;
    cout<<b<<" "<<c-a<<endl;;
    cout<<a*-1<<endl;
    long long d = 5;
    cout<<a-d<<" "<<sizeof(a-d)<<endl;
    return 0;
}

運行結果:

int transform to unsigned int
2 4294967294
4294967293
-2 8

 

int和unsigned int的混合表達式,計算時會將int轉換為unsigned int

 普通情況下會將范圍小的隱式轉換為范圍大的,但對於int和unsigned int,就說不准哪個范圍大了,經測試是會將int轉換為unsigned int(被坑過。。。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM