2.2變數
變數是乙個具名的,可供程式操作的儲存空間。
變數定義的基本形式:型別說明符+
變數名列表
每個變數名的型別由型別說明符指定。定義時可以為乙個或多個變數賦初值。
int sum=0,value,unit_sold=0;
sales_item item;
std::string book("0-201-78345-x");
上面的式子全部都是變數的定義。我們來一一解釋,第乙個式子是定義sum
,value
,unit_sold
都是int型。
第二個式子定義乙個sales_item
類的物件。
第三個式子定義乙個string
類的物件
book
用括號裡面的東西初始化。
大家注意string
是乙個標準庫型別,在命名空間
std中定義。以後會提到。剛才我用了物件這個詞。那麼何為物件呢。物件就是指一塊能儲存資料並且具有某種型別的記憶體空間。這個概念後面看多啦,就會理解。
2.2-2
初始值當物件被建立時獲得乙個特定的值。我們就是說這個物件被初始化了。那麼初始化變數可以用複雜的表示式。
注意初始化和賦值是兩個不同的概念。初始化的意思是這個變數或物件被建立之初給予乙個初始值。而賦值是將原來的值擦除,給予乙個新值。
2.2-3
列表初始化
c++語言定義了好多種不同的初始化形式。所以這個問題比較複雜啊。
比如
int units_sold=0;
int units_sold=;
int units_sold;
int units_sold(0);
注意,如果我們使用列表初始化且初始值存在丟失的風險,編譯器將報錯。
比如
long double ld=3.1415926536
int a,b=;
int c(ld),d=ld;
2.2-4
預設初始化
如果定義變數時沒有指定初值,則變數被預設初始化。這是變數被賦予了預設值。
如果是內建型別的變數未被顯示初始化,它的值由定義的位置決定。定義在函式體之外的變數將被初始化為0
;定義在函式體內部的內建型別將不被初始化。乙個未被初始化的變數的值是未定義的。如果試圖拷貝或者訪問將會引發錯誤。
每個類各自決定其初始化物件的方式。
2.2.1練習
1.答:a
):錯誤,變數必須給出明確定義。
b):正確;
c):wage
沒有給出定義。錯誤;
d):正確,但是會有警告。因為
i是整型。而
3.14
是浮點型。
2.答:global_bar
是乙個空串。
global_int
值為0.
local_int的值未定義。
local_str
是乙個空串。
2.2.2節練習
a):它是乙個定義。
b):定義並宣告
c):宣告
c Primer學習筆記2
while語句 while語句提供了迭代功能 從1到10求和 include int main std coutfor迴圈實現1到10求和 include int main std cout 未知數目的輸入 include int main std cout 類的簡介 一般將類的定義放在標頭檔案中,...
c primer 學習筆記 2
字串字面值可以分開書寫 const char aa aaa aaa 初始化 int a 0 int a int a 報錯,3.14不能放到int中 int a int a 0 申明和定義的區別 申明規定的變數的型別和名字,定義還申請記憶體,初始化 只申明 extren,但如果初始化了 就是 定義了 ...
C Primer 學習筆記 2
p15習題 題1.14 試分析如果v1 v2的情況下,該程式的輸出結果 include int main else int sum 0 for int i lower i upper i std cout sum of lower to upper inclusive is sum std endl...