C Primer 筆記 變數

2022-08-19 05:15:09 字數 909 閱讀 8932

1. 初始化不是賦值,初始化的含義是建立變數時賦予其乙個初始值,而賦值的含義是把物件的當前值擦除,而以乙個新值來代替。

2.使用列表初始化內建型別的變數時,如果初始值存在丟失資訊的風險,則編譯器將報錯。

int i;    //

錯誤

3.如果想宣告乙個變數而非定義它,就在變數名前新增關鍵字extern,而且不要顯示的初始化它,任何包含了顯示初始化的宣告即成為定義。

extern

int i; //

宣告i而非定義i

int j; //

宣告並定義j

extern

double pi = 3.14; //

定義,如果在函式體內試圖初始化乙個extern變數將報錯

4.引用並非物件,相反的,它只是為乙個已經存在的物件起的另外乙個名字。

5.一旦引用的初始化完成,引用將和它的物件一直繫結在一起,所以引用在定義時必須初始化。

7.void* 是一種特殊的指標型別,可用於存放任意物件的位址,但是我們不知道這個位址中到底是個什麼型別的物件,所以也無法對這個物件做操作。

8.在定義多個變數的時候,型別修飾符(*或&)僅僅修飾最近的那個變數。

int* p1, p2;    //

p1是int指標,p2是int

9.引用本身不是乙個物件,所以不能定義指向引用的指標,也沒有引用的引用。

10.decltype的表示式如果是加上了括號的變數,結果將是引用。

int i = 0

;decltype((i)) a;

//錯誤,a是int&,沒有初始化

decltype(i) b; //

正確,b是乙個int

C Primer 筆記三 變數

初始化 變數是命名的物件或引用,提供乙個具名的 可供程式操作的儲存空間。定義乙個變數的基本形式是 首先是型別說明符,然後緊跟由逗號分隔的變數名組成的列表,最後以分號結束。type objlist int sum 0,value 定義兩個int型變數,同時為sum賦初值為0在c 中,初始化和賦值是兩個...

C Primer 筆記之 變數和函式

32位機器上 cout 輸出 4 4 8 8 4也就是說只有long long 以及double是占用8個位元組的。1 引用和指標一樣,是繫結對物件的另外乙個名字,改變它或者它繫結的物件,都會使雙方改變 2 必須是乙個物件的別名,int b 1 是錯的 3 若繫結的物件時const型別,那麼引用也必...

C Primer學習筆記 變數宣告和定義

int a 0 int a 列表初始化,不能強制型別轉化 但是我試的是可以的 int a 0 int a 列表初始化,不能強制型別轉化宣告和定義的關係 c 語言支援 分離式編譯 可以將程式分割為若干個檔案,單獨編譯。當檔案 間變數共享時,會使用ectern將變數的宣告和使用分離開來。宣告 規定了變數...