【发布时间】:2021-05-23 10:05:28
【问题描述】:
我正在读一本 C 的书,我陷入了这个例子。
作者说这个例子的结果是x == 0和y == 101。
我对 y 结果很好,但是我真的认为表达式中的第一件事会计算 y == y 然后会增加 y +1。
我编译了代码,得到了一个警告:未排序的修改,并且 1 存储在 x 中。
这是什么原因?
int main(void)
{
int x,y=100;
x=y;
x= y == y++;
printf ("%d %d",x,y);
return 0;
}
【问题讨论】:
-
嗯,这是一本用我的母语写的书,英文叫“The Programming Language C in depth (5th edition)”
-
“未排序的修改”听起来像是 Clang 给出的警告。用 GCC 试试同样的方法。
-
'深度编程语言 C(第 5 版)' - 听起来像是一条指令。将重物附在书上,然后将其放入您能到达的最深的水中。 Challenger Deep 会很好。