1.constant常量宣告的時候必須要初始化
例如:
const
int buf=1024;
//此時buf不再是變數而是乙個常量,符合常量的原則
2.對const常量的引用(reference to const)
引用常量本質上是繫結了乙個常數。
常量的引用也必須是常量 因此具有該格式:
const
int buf=1024;
const
int &r=buf;//引用也必須為常量,格式與引用物件相同
//引用r,因此不能對r進行賦值的更改(因為是常量),也不能進行物件更改(因為是引用)
本質上常量引用r繫結的是1024,而非buf;
2.1常量引用的初始化
int a=1;
const
int &r1=a;//允許,常量引用可以被變數初始化;
const
int &r2=12;//允許,常量引用可以被常量初始化;
//需要注意的是一般的引用是不能被常量初始化的;
//而常量引用可以被常量初始化,即將常量引用繫結到了乙個常量上(符合邏輯)
2.2指向常量的指標(pointer to const)
int a=1;
int b=1024
const
double* ptr=b;//常量的是double,因此內容不能改變即*ptr是個常量不能改變
ptr=&a;//允許,因為指標ptr並不是常量,位址是可以改變的
2.3常量指標(const pointer)
與常量引用類似,顧名思義,指標為常量,因此const的物件為ptr
int a=1;
double* const ptr=&a;//常量的物件是個指標因此ptr永遠指向a的位址;
//此時可以修改*ptr的值
const
double* const ptr1=a;//指標指向的位址和指標內容都為常量
//因此不發更改指標和內容
3.const 的拷貝
注意拷貝是變數給變數,變數給常量的內容複製
賦值為常數給變數或者常量的內容賦予
規則:
c primer 筆記,第二章
初始化的含義是建立變數並賦予其乙個初始值,賦值的含義是將物件當前的值擦除 初始化四種方式 int n 0 int n 用花括號稱為列表初始化,當使用列表初始化且初始值存在丟失的風險,編譯器會報錯 int n int n 0 定義於函式體外的變數被初始化為0,函式體內部的內建型別變數不被初始化,類的物...
C Primer 筆記 第二章
c primer 第二章 變數和基本型別 2.1基本內建型別 有算數型別和void 型別 算數型別儲存空間大小依及其而定。算數型別表 型別含義 最小儲存空間 bool 布林型 char 字元型8 wchar t 寬字元型 16short 短整型16 int整型 16long 長整型32 float ...
c primer 學習筆記(第二章)
第二章 變數和基本型別 2.1基本內建型別 基本內建型別中,因為位數的不同,這些型別所表示的最大最小值也因機器的不同而不同。即 c 基本資料型別的儲存空間依機器而定 型別含義 最小儲存空間 bool 布林型 char 字元型8bit wchar t 寬字元型 16bit short 短整型16bit...