【发布时间】:2025-12-25 23:20:18
【问题描述】:
为什么此代码在第一个 If 语句中失败?
根据关联和优先级,我的预测出错了。
#include<stdio.h>
void main()
{
int i=10;
if(i==i--)
{
printf("In 1:%d\n",i);
printf("TRUE 1\n");
}
i=10;
if(i==--i)
{
printf("In 2:%d\n",i);
printf("TRUE 2\n");
}
}
【问题讨论】:
-
表达式
i == i--和i == --i中没有排序,因此您有未定义的行为。 -
你能给我解释一下吗?@JoachimPileborg
-
有关技术位,请阅读evaluation order and sequencing。
-
这是一个帮助.. @JoachimPileborg
标签: c