1. 程式人生 > >C++變數和基本型別(二)基本內建型別

C++變數和基本型別(二)基本內建型別

變數      型別說明符    +    型別修飾符   +  變數名的形式 進行宣告一個變數。      int* intPointer; C++中的物件就是能儲存資料並有一定資料結構型別的記憶體空間。int型別也是物件。物件指的是可以被修改的資料,值指的是隻讀型別。

在定義兩個或者多個變數的時候,物件名隨著定義就可以使用了。因此在同一條定義語句中,可以用先定義的變數值初始化後定義的值。 double price = 9.9,discout = price * 0.5;

初始化與賦值

初始化不等價於賦值。     用 = 可以用來進行初始化也可以用來賦值,但是仍然要做區分。     初始化是指在建立一個變數是賦予其一個初始值。     賦值指的是將當前資料擦除,然後用新的值來替換。      用花括號來進行列表初始化如果初始值

存在丟失資料的可能就會報錯。     但是如果用 1,3的話就是自動的進行強制轉換。 

初始化
int a = 0
int a = {0}
int a(0)
int a{0}

預設初始化

  如果是定義在函式體外的變數一般都會被預設初始化0。如下圖所示;   如果是在函式體內部就不會被初始化。不同的編譯器會進行不同的處理,在沒有被初始化使用會報錯。在我們使用指標的時候   就會出現野指標的情況,索引到的值 是一個非法的資料。

宣告和定義    為了能夠在多個檔案中進行共享程式碼,C++支援分離式編譯機制,也就是允許把程式拆分為多個邏輯部分來編寫。    宣告是為了讓其他部分的檔案所知。我們通過extern的方式進行宣告,如果有賦值就變成了定義。    在此補充:宣告可以有多次,但是隻能定義一次,這個同樣適用於全域性變數與extern共享變數。

   定義是建立與名字相關聯的實體。任何進行顯示的初始化的變數都是定義(如果是被其他檔案定義過的變數將會報錯)。

作用域    作用域不進行過多的細講,將如何訪問外部的資料;    根據下面的圖和輸出結果我們可以看出,通過  :: 訪問的是全域性變數而不是多層塊作用域的外層變數。