类型提升常发生在表达式中,char,short(包括它们的signed和unsigned类型)以及枚举类型enum,在表达式中被提升为int(如果int足够表示转换后的数的话,否则就是unsigned int);在含有unsigned int的表达式里,int转换为unsigned int来做运算。低级向高级发生转换。
例如:1:‘a'+1=98;
2:sizeof 'A'=?,注意:结果不是1,是4,这是因为字符发生了类型提升。sizeof是关键字,也是表达是运算
3: if(-1<sizeof 'A')
printf("yes");
else
printf("error");
结果是“error";sizeof的结果为unsigned类型,int发生类型提升,-1变为非常大的一个数。