[英]C++ Operator precedence and the return statement
如果我做某事像return a ? b : c;
return a ? b : c;
或者return a && a2 && a3;
它是否可以被評估為只return a
然后函數在評估其余部分之前立即返回?
return
是一個聲明 ,而不是表達式 。 因此,它永遠不會像你想象的那樣被誤解。
該語句總是return [some expression];
(表達式是可選的)。 首先計算表達式(如果存在),並將其值綁定到函數的返回值。
為了使這個更清楚,我將稍微重申一下這個問題:
return a ? b() : c();
return a && a2() && a3();
在第一種情況下,將調用b
或c
一個而不是另一個。
在第二種情況下,如果a
為假,那么a2
和a3
都不會被調用。 如果a2
返回false,則不會調用a3
。
作為return a && a2 && a3;
,如果a
為假,則無需評估表達式的其余部分。 結果總是錯誤的。 因此不會評估a2
和a3
。 這稱為“短路”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.