类型转换

扫码查看

这今天有朋友面试遇到一个题是这样的

int main()
{
    unsigned int a = 6;
    int b = -20;
    a + b > 6? puts(">6"):puts("<=6");
    return 0;
}

  问你说出结果

如果你不了解隐式类型转换,你很大可能说 <= 6

结果是 .>6

哎,我就深入理解类型转换吧

所谓类型转换就是一种数据类型转换成为另一种数据类型

在一个算术表达式中,如果出现两个不同数据类型,就会先进性类型转换,在计算表达式的值

比如

cout << 34 + 21.45 + 'a' << endl;

34 是int,21.45是double,'a'是char类型。
运算的过程如下 34会先转换成double类型 34.00,再完成34.00+21.45的
运算,得到当前结果 55.45 ,然后将 'a' 转换成double类型,97.00
再计算 55.45 + 97.00 得到最终结果 152.45

而类型转换分为隐式类型转换和显示类型转换。
c++中类型转换发生在,算术表达式计算,函数参数传递,函数返回值及赋值语句中

我们先谈谈隐式类型转换吧
下面四种情况会发生隐式类型转换
定义:
c++会自动对参与运算的数据类型进行转换,不需要人参与叫隐式类型转换

01-22 20:56
查看更多