考虑以下代码:
int i, k, m;
k = 12;
m = 34;
for (i = 0; i < 2; i++) ((i & 1) ? k : m) = 99 - i;
printf("k: %ld m: %ld\n\n", k, m);
在这个愚蠢的例子中,条件运算符表达式是:
if (i & 1) k = 99 - i; else m = 99 - i;
我的编译器没有抱怨,执行这段代码给出了预期的输出
k: 98 m: 99
不过,我的问题是,这是否是符合 C 标准的有效代码?我以前从未见过类似的东西。