c primer 學習筆記2 變數及其初始化

2021-07-05 16:28:48 字數 1574 閱讀 6728

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...