【发布时间】:2015-09-15 11:43:03
【问题描述】:
#include<stdio.h>
int main(){
unsigned int a = 6;
int b = -20;
( a+b > 6 ) ? puts( "a") : puts( "b");// if a+b > 6 then a else b
}
我认为输出应该是“b”,但事实并非如此。
输出:a
【问题讨论】:
-
这里已经有很多关于混合有符号-无符号算术和比较的重复,但我现在找不到
-
Duplicate。另外,我认为
?:的第二和第三个操作数必须是算术或指针类型。 -
@Lundin:当然——但
puts确实是returns a value。
标签: c