三元运算符和增量运算符
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++;
如果不满足条件,这是重置计数器的有效/可靠方法吗?这是我能想到的最紧凑的方式。
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++;