以下代码:
void main
{
int b=10;
int a=5;
printf("%d",(b,a));
}
这会在执行时给出输出5。任何人都可以解释它的原因吗?
我期望输出10,因为这是匹配"%d"
的第一个值。
答案 0 :(得分:3)
了解comma operator。您的(b,a)
表达式计算为5(a
的值)。
另外,养成使用换行符printf
结束\n
格式控制字符串的好习惯,或者有时候调用fflush
(在{{1}之后自动调用) },使用main
技术)。请记住,atexit
流已缓冲!
答案 1 :(得分:1)
在C中,(b,a)
表示“计算b,然后计算并返回”。所以,在你的情况下它实际上只与a
相同。