我有一个问题,编译器如何运行以下代码:
#include<stdio.h>
int main(void)
{
int b=12, c=11;
int d = (b == c++) ? (c+1) : (c-1);
printf("d = %i\n", d);
}
我不知道为什么结果是d = 11
.
In int d = (b == c++) ? (c+1) : (c-1);
:
- 的价值
c++
是当前值c
, 11. 另外,c
增加到 12。
-
b == 11
是假的,因为b
is 12.
- Since
(b == c++)
是假的,(c-1)
用来。另外,增量为c
此时必须完成至 12。
- Since
c
is 12, c-1
is 11.
-
d
被初始化为该值 11。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)