读书人

关于类型转换的有关问题

发布时间: 2012-04-04 16:38:51 作者: rapoo

关于类型转换的问题
unsigned int i=4;
int j=-20;
i+j>4?puts(">4"):puts("<=4");
printf("i+j=%d\n",i+j);

这个的输出结果为什么是 >4 和 -16 ,求解释

[解决办法]
%d是按整型打印,所以会是-16,但是你的“i+j”的结果不是整型的,
[解决办法]
%d是有符号的……输出无符号用%u

读书人网 >C语言

热点推荐