什么是整型提升
整型提升也叫整形升级,还叫类型提升。
整型提升是隐式类型转换的一种,隐式类型转换顾名思义就是偷偷的进行转换。这种类型转换所做的动作我们平时都不会注意到,因为他是偷偷的发生的。
C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。
——《C和指针》
这是书上的概念,太长,而且还看不懂。下面我举个例子
char a,b,c;
......
a = b + c;
因为加法运算符只能作用于整型和实型,但是这个例子中b和c是字符型,所以在运算中b和c的值被提升为普通整型,然后再执行加法运算。加法运算完成之后,结果将被截断,然后再存储于a中。
如果还不明了,看下面代码
int main()
{
char a = 3;
char b = 127;
char c = a + b;
printf("%d\n",c);
return 0;