簡體   English   中英

C ++運算符優先級和return語句

[英]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();

在第一種情況下,將調用bc一個而不是另一個。

在第二種情況下,如果a為假,那么a2a3都不會被調用。 如果a2返回false,則不會調用a3

作為return a && a2 && a3; ,如果a為假,則無需評估表達式的其余部分。 結果總是錯誤的。 因此不會評估a2a3 這稱為“短路”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM