C语言中数据类型的隐式转换

四种情况下的隐式转换

  1. 算术运算式中,低类型能够转换为高类型。
  2. 赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。
  3. 函数调用中参数传递时,系统隐式地将实参转换为形参的类型后,赋给形参。
  4. 函数有返回值时,系统将隐式地将返回表达式类型转换为返回值类型,赋值给调用函数。

算术运算中的隐式转换

在这里插入图片描述

验证代码

#include <iostream>
#include <typeinfo>

using namespace std;

int main() {
    cout << "typeof(char)= " << typeid(char).name() << endl;
    cout << "typeof(short)= " << typeid(short).name() << endl;
    cout << "typeof(int)= " << typeid(int).name() << endl;
    cout << "typeof(unsigned int)= " << typeid(unsigned int).name() << endl;
    cout << "typeof(float)= " << typeid(float).name() << endl;
    cout << "typeof(double)= " << typeid(double).name() << endl;
    char a = 'a';
    short b = 10;
    int c = -10;
    unsigned int d = 20;
    float e = 1.1;
    double f = 1.2;
    cout << "typeof(char + short)= " << typeid(a + b).name() << endl;
    cout << "typeof(short + int)= " << typeid(b + c).name() << endl;
    cout << "typeof(int + unsiged int)= " << typeid(c + d).name() << endl;
    cout << "typeof(unsigned int + float)= " << typeid(d + e).name() << endl;
    cout << "typeof(float + double)= " << typeid(e + f).name() << endl;
    cout << "typeof(unsigned int + double)= " << typeid(d + f).name() << endl;
    return 0;
}

运行结果

在这里插入图片描述

参考

在算术表达式中是否会将double隐式转换为unsigned int?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值