C++變數和基本型別(二)基本內建型別
阿新 • • 發佈:2018-12-10
變數 型別說明符 + 型別修飾符 + 變數名的形式 進行宣告一個變數。 int* intPointer; C++中的物件就是能儲存資料並有一定資料結構型別的記憶體空間。int型別也是物件。物件指的是可以被修改的資料,值指的是隻讀型別。
在定義兩個或者多個變數的時候,物件名隨著定義就可以使用了。因此在同一條定義語句中,可以用先定義的變數值初始化後定義的值。 double price = 9.9,discout = price * 0.5;
初始化與賦值
初始化不等價於賦值。 用 = 可以用來進行初始化也可以用來賦值,但是仍然要做區分。 初始化是指在建立一個變數是賦予其一個初始值。 賦值指的是將當前資料擦除,然後用新的值來替換。 用花括號來進行列表初始化如果初始值
初始化 |
int a = 0 |
int a = {0} |
int a(0) |
int a{0} |
預設初始化
如果是定義在函式體外的變數一般都會被預設初始化為 0。如下圖所示; 如果是在函式體內部就不會被初始化。不同的編譯器會進行不同的處理,在沒有被初始化使用會報錯。在我們使用指標的時候 就會出現野指標的情況,索引到的值 是一個非法的資料。
宣告和定義 為了能夠在多個檔案中進行共享程式碼,C++支援分離式編譯機制,也就是允許把程式拆分為多個邏輯部分來編寫。 宣告是為了讓其他部分的檔案所知。我們通過extern的方式進行宣告,如果有賦值就變成了定義。 在此補充:宣告可以有多次,但是隻能定義一次,這個同樣適用於全域性變數與extern共享變數。
作用域 作用域不進行過多的細講,將如何訪問外部的資料; 根據下面的圖和輸出結果我們可以看出,通過 :: 訪問的是全域性變數而不是多層塊作用域的外層變數。