2015-04-01 77 views
0

三元算子是否比其他塊在執行時間或不同場景下更好?我經歷了很多鏈接,但沒有得到滿意的答案。三元算子vs其他

+1

喜來完成,歡迎計算器! 你的問題太寬泛;正如你已經注意到*在不同的場景下*意味着有很多情況需要考慮。當你關注自己的表現時,你應該已經意識到有太多的因素可以給你一個普遍的答案。沒有什麼可以替代你自己的測試! – 2015-04-01 10:11:41

回答

7

這不是更好或更壞。這是不同,因爲它是一個表達式。這意味着你可以做的東西像它初始化變量:

int n = some_flag ? 0 : 42; 

或在需要表達其他地方使用它:

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

你不能這樣做,用的if-else。至於性能,如果兩者可以互換,則極不可能有所作爲。

0

在大多數現代編譯器中,如果您使用兩者中的任何一種,則沒有區別。您唯一可以關注的是代碼的可維護性。你可以用三元運算符得到的唯一區別是,根據一些表達式,你可以初始化一個常量變量。事情是這樣的:

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

其不能使用,如果其他

相關問題