c const的使用(引用,指標)

2021-09-13 02:57:17 字數 1184 閱讀 1250

1)const 物件,一旦建立後,值就不能在改變,所以要對const物件進行初始化

const int i=get_size();初始值可以是任意複雜的表示式

const int j=42;對

const int k;錯

2)例:const int bufsize=512;

編譯器會在編譯過程中,把所有用該變數的地方都替換成對應的值,即出現bufsize的地方都換成512

3)extern const int bufsize=12;

const物件僅在檔案內有效,但多個檔案都想共享這個變數,即只在乙個檔案內定義const,但要在其他多個檔案中宣告並使用它

解決辦法:對於const變數,不管是宣告還是定義,都新增extern關鍵字,這樣只需要一次定義即可

4)const的引用->對常量的引用

對常量的引用不能修改它所繫結的物件

const int ci=1024;

const int &r1=ci; 正確

r1=42;錯誤,不能對r1進行修改

int &r2=ci;錯誤 ci是個常量,r2不是乙個const 的常量,不能讓非常量指向常量

(引用的型別必須與被引用物件的型別一致)

例外:const的引用也可以引用乙個非const的物件

int i=42;

const int &r1=i;正確

r1=0;錯誤->可以通過其他方式來改變i的值

即:const int i=9;

const int &r=i; 正確

const int i=9;

int &r=i;錯誤

int i=9;

const int &r=i; 正確

5)指標和const (指向常量的指標)

指標也可以指向常量(const)或非常量

指向常量的指標是指所指物件的值不能改變

若想存放指向常量的位址,就要使用指向常量的指標

const int p=3;

const int *ptr=&p;

*ptr=43; 錯誤 (指標指向的值不能變)

例外:指向常量的指標沒規定指向的物件一定是個常量,指向常量的指標不能改變物件的值,但可通過其他方式改變值

int err=0;

const int *curerr=&err;正確

常量指標初始化之後,他存放的位址值就不能改變了

C const修飾引用和指標

測試 void constbeforefunction const double x,const std array d condition,const std array s condition 以下報錯 x 1.0 d condition at 0 1 d condition at 1 2 d ...

C const引用詳解

文章 http blog.csdn.net k2eats archive 2008 06 12 2541790.aspx 1 在實際的程式中,引用主要被用做函式的形式引數 通常將類物件傳遞給乙個函式 引用必須初始化 但是用物件的位址初始化引用是錯誤的,我們可以定義乙個指標引用。1int ival 1...

C const引用詳解

文章 1 在實際的程式中,引用主要被用做函式的形式引數 通常將類物件傳遞給乙個函式.引用必須初始化.但是用物件的位址初始化引用是錯誤的,我們可以定義乙個指標引用。1 intival 1092 2 int re ival ok 3 int re2 ival 錯誤 4 int pi ival 5 int...