理解性記憶const修飾普通變數和指標的新思路

2022-03-01 21:56:02 字數 621 閱讀 3310

看了"c++中const用法總結 ", 談點新思路. 關於理解下面語句中的const:

a. const char *pcontent;

b. char * const pcontent;

c. char const *pcontent;

d. const char* const pcontent;

標準的助記方法是:

沿著*號劃一條線,

如果const位於*的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量;

如果const位於*的右側,const就是修飾指標本身,即指標本身是常量。

當然,這也是c++之父的著作《我的想法是:const用來修飾的是其右側第乙個變數或型別的常量屬性.

對於a, const修飾的是char, char是型別, 所對應的變數是 *pcontent; 所以a中const表示指向的內容不變

對於b, const修飾的是pcontent, 即表示char*型的指標pcontent不變.

對於c, const修飾的是*pcontent,即同a.

對於d, 第乙個const修飾的是char, 同a, 第二個const修飾的是pcontent,同b.

C 類 const修飾普通成員函式

const修飾變數一般有兩種方式 const t a,或者t const a,這兩者都是一樣的,主要看const位於 的左邊還是右邊,這裡不再贅述,主要來看一下當const修飾類的成員函式時,成員函式有什麼特點。類的成員函式後面加 const 表面這個函式不會對這個類物件的資料成員 準確的說是非靜態...

static修飾的變數和函式與普通變數函式的區別

全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是有...

CONST修飾符的理解

目前在進行c語言補習時,發現很多的同學對於const這個關鍵字的理解存在很大的誤解。現在總結下對這個關鍵字理解上的誤區,希望在以後的程式設計中,能夠靈活使用const這個關鍵字。1 const修飾的變數是常量還是變數 對於這個問題,很多同學認為const修飾的變數是不能改變,結果就誤認為該變數變成了...