小编Pyr*_*nth的帖子

在C中使用三元运算符的增量

例如,我使用后

int a = 5, b = 6;
x = (a < b) ? a++ : b++;
Run Code Online (Sandbox Code Playgroud)

x得到a的值,即5,增量为6,这是预期的.

我用的时候

a = (a < b) ? a++ : b++;
Run Code Online (Sandbox Code Playgroud)

在这一行之后,仍然是5.

a = (a++ < b++) ? a : b;
Run Code Online (Sandbox Code Playgroud)

a现在是6.

为什么会发生这种情况,为什么在第一种情况下不执行增量运算符?

编辑:只是为了澄清,我问为什么当我分别使用这些线,一个接一个,而不是所有三个同时使用这些线时.

c ternary-operator

8
推荐指数
1
解决办法
1687
查看次数

标签 统计

c ×1

ternary-operator ×1