【发布时间】:2020-12-28 15:30:39
【问题描述】:
int x = 15 ;
printf ("\n%d %d %d", x != 15, x = 20, x < 30 );
我正在学习 C 并解决伪代码。我试图解决它,我的答案是0 20 1,
但是当我尝试编译并检查答案是1 20 1。
有人能解释一下为什么会这样吗?
当我尝试将条件交换为printf ("\n%d %d %d", x = 20,x != 15, x < 30 ); 时,我得到的答案是20 0 1
为什么会这样?
【问题讨论】:
-
这不仅仅是评估问题的顺序。
x = 20与其他参数中x的无关值访问无关。此代码调用未定义的行为。