#include <stdio.h>
int main()
{
unsigned int a;
char d;
unsigned int c;
d = -20;
a = 250;
c = a+d;
printf("%d",c);
getchar();
}
以上是测试代码,DEVCPP输出为230.
问题:
测试输出结果与本人理解的转换规则不符合。
PS:
http://www.hookcn.org/2011/01/implicit-conversions-of-usual.html
链接为网上找的转换规则,但是如果按照转换规则,那么
1、进行整型提升,char d——>int d
2、unsigned int 的类型>= int,所以int会转换成unsigned int。那么计算的结果应该不是230.
大家帮忙看看吧!谢了
...全文
1785打赏收藏
C语言算术运算隐式转换问题!
#include int main() { unsigned int a; char d; unsigned int c; d = -20; a = 250; c = a+d; printf("%d",c); getchar(); } 以上是测试代码,DEVCPP输出为230. 问题: 测试输出结果与本人理解的转换规则不符合。 PS: http://www.hookcn.org/2011/01/implicit-conversions-of-usual.html 链接为网上