三元运算符和增量运算符

Ternary operator and increment operator

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

int counter = 0;
int a,b;

// Do .. and assign a and b 

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

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

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

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

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