1. 程式人生 > >c++ int,unsigned int混合表達式類型轉換

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

類型轉換 main pan cnblogs blog 情況下 mes size transform

測試代碼:

#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(被坑過。。。)

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