C Primer第五版 2 5 3節練習

2021-07-05 05:34:09 字數 760 閱讀 5875

練習 2.36:關於下面的**,請指出乙個變數的型別以及程式結束時它們各自的值。

#include 

int main()

練習 2.37:賦值是會產生引用的一類典型表示式,引用的型別就是左值的型別。也就是說,如果i是int,則表示式 i = x的型別是int &。根據這一特點,請指出下面的**中每乙個變數的型別和值。

#include 

int main()

練習2.38:說明由decltype所指定的型別和由auto指定的型別有何區別。請舉出乙個例子子,decltype指定的型別與auto指定的型別一樣;再舉乙個例子,decltype指定型別與auto指定的型別不一樣。

decltype(a)關鍵字的推斷規則:

1.如果a是乙個識別符號,則推斷結果與標誌符的型別一致

2.如果a是乙個表示式,並且a的結果是將亡值(std::move),則推斷結果位右值

3.如果a是乙個表示式,並且a的結果是左值,則推斷結果為左值

4.其他情況與a型別一致。

不同 const int ci=0,&cj=ci;

decltype(ci) x=0; //x 為const int

auto x=ci;//x為 int 對頂層const處理不同 相同

int ci=0,&cj=ci;

decltype(ci) x=0; //x 為 int auto x=ci;//x為 int

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第五版 3 2 2節練習

練習3.2 編寫一段程式從標準輸入中一次讀入一整行,然後修改該程式使其一次讀入乙個詞。練習3.3 請說明string類的輸入運算子和getline函式分別是如何處理空白字元的。練習 3.4 編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串。改寫上述程式,比較輸入的兩...

C Primer第五版 3 3 1節練習

練習3.12 下列vector物件的定義有不正確的嗎?如果有,請指出來。對於正確的,描述其執行結果 對於不正確的,說明其錯誤的原因。a vector ivec b vector svec ivec c vector svec 10,null 練習3.13 下列的vector物件包含多少個元素?這些元...