c 中const用法彙總

2021-10-02 03:13:08 字數 1921 閱讀 9607

向較於c語言,c++增加了引用,通過修改乙個變數的引用,可以起到修改變數的目的。引用可以起到類似指標的提高效率的效果,但很也容易踩坑,可能以外的修改了某些變數的至。有了const,可以很大程度上避免踩到這類坑。這篇部落格整理了c++中const的常見用法,內附可編譯通過的例程。

#ifndef _common_h_

#define _common_h_

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

#endif

#include

"common.h"

class

consttest

void

printvalue()

void

printvalueconst()

const

void

constfuncmodify()

const

public

:const

int testintconst;

int testint;

mutable

int testintmutable;};

intmain

(void

)

編譯

g++

-o consttest consttest.cpp -o0 -g -wall -std=c++

11

執行

[root@***

]# .

/consttest

testintconst1:

0testintconstref0:

1testintconstref1:

1*intconstptr:

0*intconstptrconst:

0in printvalue

testintconst:

100testint:

400testintmutable:

300in printvalueconst

testintconst:

100testint:

400testintmutable:

100in printvalueconst

testintconst:

100testint:

200testintmutable:

100

指標可以理解為位址,在下面的宣告語句中

int test1 =

100;

int test2 =

200;

int* testptr =

&test1;

*testptr = test2;

testptr =

&test1;

testptr被定義為乙個(int*)型別的變數,testptr本身是指標,testptr本身也是位址。*testptr是該位址儲存的變數。位址可以改變,位址儲存的變數值也可以改變,這是不同的含義。再結合const,可以理解為位址可以是const型別,位址儲存的變數值可以是const型別,兩者可以都是const型別。

重點在於const和*的先後順序

C 中const用法總結

c 中用法總結 1.1.1.定義普通常量 使用 define來定義常量也是常用方法,但const也可以用來定義常量,在 effective c 中建議使用const代替 define來定義常量,因為const定義的常量具有型別資訊,而巨集沒有,所以使用const定義的常量在進行賦值操作時編譯器會進行...

C 中 Const用法小結

c 中const用法小結 關於c 中的const關鍵字的用法非常靈活,而使用const將大大改善程式的健壯性,參考了康建東兄的const使用詳解一文,對其中進行了一些補充,寫下了本文。1.const常量,如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編...

C 中const用法總結

1.const 常量,如 const int max 100 優點 const 常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換時可能會產生意料不到的錯誤。2.const 修飾類的資料成員。const 資料成員只在某個...