練習4.20:假設iter的型別是vector::iterator,說明下面的表示式是否合法。如果合法,表示式的含義是什麼?如果不合法,錯在何處?
(a) *iter ++ ;
(b) (*iter)++;
(c) *iter.empty()
(d) iter->empty()
(e) ++*iter;
(f) iter++->empty();
(a)正確 等價於(iter++),返回(iter)值,迭代器後移一位
(b).錯誤(*iter)是string型別,後面接著++運算子,錯誤
(c).點運算子的優先順序高於解引用。所以等價於*(iter.empty()),iter是乙個迭代器,沒有empty()這個成員函式。
(d)正確,等價於(*iter).empty();
(e). 正確,等價於++(*iter)
(f).正確,等價於((iter++)).empty().返回(iter).empty()結果,迭代器後移一位
C Primer第五版 2 4 3節練習
練習2.30 對於下面的這些語句,請說明物件被宣告成了頂層const還是底層const?const int v2 0 v2的值不能被改變,所以這是乙個頂層const int v1 v2 int p1 v1,r1 v1 const int p2 v2 p2存放的是v2的位址,不能間接改變v2的值,但p...
C Primer第五版 2 5 3節練習
練習 2.36 關於下面的 請指出乙個變數的型別以及程式結束時它們各自的值。include int main 練習 2.37 賦值是會產生引用的一類典型表示式,引用的型別就是左值的型別。也就是說,如果i是int,則表示式 i x的型別是int 根據這一特點,請指出下面的 中每乙個變數的型別和值。in...
C Primer第五版 3 2 2節練習
練習3.2 編寫一段程式從標準輸入中一次讀入一整行,然後修改該程式使其一次讀入乙個詞。練習3.3 請說明string類的輸入運算子和getline函式分別是如何處理空白字元的。練習 3.4 編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串。改寫上述程式,比較輸入的兩...