練習2.32
下面的**是否合法?如果非法,請設法將其修改正確。
int null = 0, *p = null;
解答:不合法,這裡將乙個整型物件賦值給乙個整型指標是錯誤的。
修改如下
int null = 0, *p = nullptr;
練習2.33
利用本節定義的變數,判斷下列語句的執行結果。
a = 42; b = 42; c = 42;
d = 42; e = 42; g = 42;
解答:a,b.c是整型,所以賦值後都為42.
d是整型指標,所以賦值42是非法的
e是指向整型常量的指標,所以賦值42也是非法的
g是整型常量引用,所以賦值42是非法耳朵
練習2.34
給予上乙個練習中的變數和語句編寫一段程式,輸出賦值前後變數的內容,你剛才判斷正確嗎?如果不對,請反覆研讀本節的示例直到你明白錯在何處為止。
解答:
#include int main()
可以看一下編譯器的錯誤提示。
練習2.35
判斷下列定義推斷出的型別時什麼,然後寫程式進行驗證。
const int i = 42;
auto j = i;
const auto &k = i;
auto *p = &i;
const auto j2 = i, &k2 = i;
解答:j 是整型
k是整型常量引用
p是整型常量指標
j2是整型常量
k2是整型常量引用
這裡可以用到19章節的內容來幫助我們判斷各個變數的型別。
#include #include using namespace std;
int main()
vs2013的結果
int
intint const *
intint
其中,引用也會被顯示成原型別。
linux上輸出的結果會不同,可以參考19章的內容。
第二章 2 2 1節練習
練習2.9 解釋下列定義的含義。對於非法的定義,請說明錯再何處並將其改正。a std cin int input value b int i c double salary wage 9999.99 d int i 3.14 解答 a 非法,這裡不能對變數進行宣告。必須在輸入語句之前對變數定義或者宣...
第二節練習
a b 2 鏈式賦值 print a print b c id a 位址print c c type a 型別 print c a,b 2,3 系列解包賦值 a,b b,a print a print b 基本運算 print 3 2 print 30 5 print 30 5 print 30 5...
第二章 2 2節
2.2 1 用 記號表示函式n 3 1000 100n 2 100n 3 解答 這個就很簡單了,這裡我們真正感興趣的執行時間是增長率,也就是直接控制函式影象斜率的因素。這裡就是 n 3 2.2 2 考慮排序儲存在陣列a中的n個數 首先找出a中的最小元素並將a 1 中的元素進行交換。接著,找出a中的次...