有人可以解释这个C/C++语法吗?

1 c c++ syntax programming-languages

sombody可以解释一下这是如何工作的?

int x, y;
....
(some_condition ? x : y) = 100;
Run Code Online (Sandbox Code Playgroud)

这是打算工作还是只是一个"盲"翻译或编译器(类似于vec[10]equals 10[vec])?

CB *_*ley 13

这是有效的C++和无效的C.

条件表达式的结果可以是(并且在这种情况下)是C++中的左值,引用其中一个xy取决于是否some_condition求值true.在C++中,x如果some_condition被true转换为a bool,则为其分配值100 ,否则y赋值为100.

在C中,条件表达式的结果永远不是左值,无法分配.

  • 可以在这样的简单情况下解决C规则:`*(some_condition?&x:&y)= 100;` (3认同)