说我写:
int a=1,b=2;
a<b ? return 1 : return 2 ; // Case 1
它给出编译错误说“错误:'return'之前的预期主表达式”
但是当我写:
int a=1,b=2;
a<b ? printf("1\n") : printf("2\n"); // Case 2
这成功编译并按预期输出。
即使我试过这个:
a<b ? printf("1\n"): return 2;
我认为可能是因为如果 return 1 没有“;” 结束他的陈述。
但只有案例 2 成功。CASE 2 与 CASE 1 有什么不同?是控制转移吗?请解释 !
我的编译器 - C 4.3.2 Ubuntu 11.10