三元运算符和增量运算符

时间:2015-08-25 15:35:01

标签: c++ ternary-operator

如果不满足条件,这是重置计数器的有效/合理方式吗?这是我能想到的最紧凑的方式。

int counter = 0;
int a,b;

// Do .. and assign a and b 

counter = ((a<b) ? counter++ : 0); 

2 个答案:

答案 0 :(得分:8)

您已经分配到counter,因此也不要使用++

counter = condition ? (counter + 1) : 0;

答案 1 :(得分:3)

counter = (condition ? counter++ : 0);的行为未定义,因为没有排序点。 (三元组没有排序,也没有排序)。

它的形式类似于i = i++;