三元运算符vs if else

时间:2015-04-01 10:10:21

标签: c

三元运算符是否优于if else在执行时间或不同场景下阻塞?我已经通过了许多链接,但没有得到满意的答案。

2 个答案:

答案 0 :(得分:7)

不是更好或更糟。它是不同的,因为它是一个表达式。这意味着你可以用它来初始化变量:

int n = some_flag ? 0 : 42;

或在需要表达式的其他地方使用它:

printf("Hello number %d", some_flag ? 0 : 42);

你不能用if-else做到这一点。至于性能,在两者可互换的情况下,极不可能产生影响。

答案 1 :(得分:0)

在大多数现代编译器中,如果你使用两者中的任何一个,它就没有区别。您可以专注的唯一事情是代码的可维护性。使用三元运算符可以获得的唯一区别是,根据某些表达式,您可以初始化常量变量。像这样:

const int a = (x<y) ? y : x;

使用if else

无法完成