整型提升的详细解释(笔记版)

文章讨论了C/C++编程中整型提升的概念,即不同类型运算时自动转换为更高类型以确保正确计算。最终结果由定义的类型决定,而非转换过程。运算优先级从int到longint和unsignedlongint相同。
摘要由CSDN通过智能技术生成

整型提升是指在某些情况下c/c++程序编译器会将一些小型的整数表达式转化成较大类型的整数表达式。但是并不影响最后的输出结果的类型。比如

char c=‘a’;(a的ASCLL码值为97)

int i=100;

float j=3.14;

int result=c+i+j;

在程序开始运行时,先计算c+i的值,但是c和i的类型不同,因为int 的优先级高于c,所以把c的类型先转化成int。即c+i=97+100=197 (int) 

之后将c+i的运算结果提升为float类型(float类型优先级高于int)。此时197+3.14=200.14

将最终结果带入int result中,最终的输出结果是200(result的类型已经被定义成int的了,所以只输出整数部分。)

总结:其实就是将小类型转换成大类型进行数学运算,但是最终的结果由对结果的定义类型来决定,换算过程不对结果类型造成影响。

附:

long double
double
float
unsigned long int
long int
unsigned int
int
优先级从第一行开始逐渐降低,整型提升的时候都是往高类型的走,其中 unsigned long int long int 的优先级是相同的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值