int main(void) {
int N = -3, M = 4;
for (N > 0 ? N : 1;N <= M; printf("%d ", N++)){
}
return 0;
}
在上面代码的输出中,我们有:
-3 -2 -1 0 1 2 3 4
但不是:
1 2 3 4
为什么?毕竟,N 必须根据三元运算符的条件和表达式赋值为 1。创建附加变量时,一切都按我的预期工作:
for ( int K = N > 0 ? K : 1 ; K <= M; printf("%d ", K++))
我错过了什么?
您错过了为变量赋值
N
:编码
返回一个值,但您不使用它...
没有三元运算符是可能的: