1. 在c中物件的定義並不被視為c語言的語句,塊中的所有物件定義必須出現在任何程式語句之前;由於物件的定義是c++語言的一條語句,所以可以將物件定義放在任何其他語句能夠出現的地方。
2. 在condition 中定義的物件只在與if 相關的語句或語句塊中可見。
3. c和c++中關鍵字case後面的值必須是一種整數型別的常量表示式,另外任意兩個case 標籤不能有同樣的值,如果有則導致編譯錯誤。
4. 普遍的誤解是:只有與被匹配的case標籤相關聯的語句才被執行,實際上程式從該點開始執行並繼續越過case邊界直到switch語句結束。
5. 程式設計師必須顯式地告訴編譯器停止執行switch中的語句,這可以通過在switch 語句內的每個執行單元後指定乙個break 語句來完成,在大多數條件下乙個case標籤的最後一條語句是break。
6. 宣告語句也可以被放在switch語句的條件中如下所示switch( int ival = get_response() );ival 在整個switch語句中是可見的,但在其外面並不可見。
7. expression表示式在迴圈每次迭代後被計算,一般用它來修改在init-statement中被初始化的在condition中被測試的變數,如果condition 的第一次計算結果為false,則expression從不會被計算。
8. for迴圈中,在init-statement 中可以定義多個物件,但只能出現乙個宣告語句。因此所有物件都必須是相同的型別。
9. 不像其他迴圈語句,do while迴圈的條件(即condition 部分)不支援物件定義。
10. 如果乙個break 語句出現在if 語句的內部,但是並不被包含在switch 或迴圈語句中,那麼這樣的break語句將導致編譯錯誤。例如:
// 錯誤: break 語句的非法出現
if ( ptr )
一般來說break 語句只能出現在迴圈或switch 語句中。
11. break語句終止最近的while,do while,for或switch 語句;continue 語句導致最近的迴圈語句的當前迭代結束,執行權被傳遞給條件計算部分,continue 語句只有出現在迴圈語句中才是合法的。
c primer學習筆記 第五章
別漏寫分號也別多寫分號,如果是空語句需要注釋。while iter svec.end 迴圈體時空語句 iter 遞增運算不屬於迴圈的一部分 復合語句 用花括號括起來的語句和宣告的序列,也稱作塊。乙個塊就是乙個作用域,在塊中引入的名字只能在塊內部及子塊中訪問。塊不以分號結束。else與離他最近尚未匹配...
c primer 筆記,第五章
case標籤必須是整型常量表示式 在case語句中,不允許跨過變數的初始化語句直接跳轉到該變數作用域內的另乙個位置 在範圍for語句中,預存了end 的值,一旦在序列中新增 刪除 元素,end函式的值就可能變得無效了 尋找處理 的過程域函式呼叫鏈剛好相反,是沿著程式的執行路徑逐層回退,直到找到適當型...
C Primer 學習筆記 第五章 語句
簡單語句 語句作用域 條件語句 1if語句 2switch語句 迭代語句 跳轉語句 1break語句 contiune語句 goto語句 語句塊和異常處理 異常是指存在於執行時的反常行為,這些行為超出了函式正常功能的範圍。典型的異常包括拾取資料庫連線以及遇到意外的輸入等。處理反常行為可能是設計所有系...