如果我將它用作if
,while
,for
語句的控制結構,那麼變量defintion會做什麼?變量定義在C++的控制結構中做什麼?
考慮的代碼,這兩個片段來自C++ Primer(5th Edition):
while (int i = get_num()) //i is created and initialized on each iteration
cout << i << endl;
和
while(bool status = find(word)) {/*...*/} //assume that find(word) returns a bool type
我不知道變量定義「收益」一bool
類型是否指示定義的成功,或當用作控制結構的條件時,變量定義返回變量本身。 我認爲第二個片段正常工作,因爲status
是 =
運算符的結果。條件測試status
是否爲true
。 我的一位朋友說第二個片段出錯,因爲變量status
未申報。
assignemnt運算符通常返回對左側的引用。 'a = b'返回對a的引用。 Ifi可以轉換爲'bool',可以在條件下檢查(非零'int'轉換爲true)。 – MagunRa
[c-variable-declaration-in-if-expression](http://stackoverflow.com/questions/7836867/c-variable-declaration-in-if-expression)和[defined-a-variable-in -the-條件部分的-AN-if語句(http://stackoverflow.com/questions/12655284/defining-a-variable-in-the-condition-part-of-an-if-statement) – Jarod42
@MagunRa - 這裏沒有賦值操作符。這些'='符號是**初始化**,不是賦值。 –