int a = 0;
int a = ;//列表初始化,不能強制型別轉化(但是我試的是可以的)
int a(0);
int a; //列表初始化,不能強制型別轉化
宣告和定義的關係:c++語言支援*分離式編譯*,可以將程式分割為若干個檔案,單獨編譯。當檔案**間變數共享時,會使用ectern將變數的宣告和使用分離開來。
宣告:規定了變數的型別和名字,相當於告訴程式我要用這個變數啦。
定義:除了規定變數的型別和名字,還開闢了儲存空間。
extern
int i; //宣告i,但沒有定義i;
int j; //宣告並定義j;
extern
double pi = 3.1416; //包含了顯式初始化,變成了定義。
ps:函式體內部,如果初始化乙個extern關鍵字標記的變數會引發錯誤。 C Primer 筆記 變數
1.初始化不是賦值,初始化的含義是建立變數時賦予其乙個初始值,而賦值的含義是把物件的當前值擦除,而以乙個新值來代替。2.使用列表初始化內建型別的變數時,如果初始值存在丟失資訊的風險,則編譯器將報錯。int i 錯誤 3.如果想宣告乙個變數而非定義它,就在變數名前新增關鍵字extern,而且不要顯示的...
C Primer讀書筆記之變數的定義與宣告
變數的定義用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且有乙個定義。宣告用於向程式表明變數的型別和名字,不分配儲存空間。定義也是宣告 當定義變數時我們宣告了它的型別和名字。可以通過使用extern關鍵字宣告變數名而不是定義它。不定義變數的宣告包括物件名 物件型別和物件型別前的...
C Primer 筆記三 變數
初始化 變數是命名的物件或引用,提供乙個具名的 可供程式操作的儲存空間。定義乙個變數的基本形式是 首先是型別說明符,然後緊跟由逗號分隔的變數名組成的列表,最後以分號結束。type objlist int sum 0,value 定義兩個int型變數,同時為sum賦初值為0在c 中,初始化和賦值是兩個...