關於C const限定符與define

2021-10-02 14:15:28 字數 653 閱讀 9044

①.const限定符修飾的常量無法修改,且在定義的時候必須同時初始化,否則error(xcode平台),相比define,const指定的常量有型別,而define只是簡單的字元替換。

②const修飾的常量只能由const指標來指向,不能用乙個普通的指標指向乙個const修飾的常量

const int a=10;

int *p=&a;//[error]

③const int *pt=&age;==>pt指向的內容不能修改(age的值),但是pt可以指向別的變數,比如pt=&month。(a pointer to const int)

int * const pt=&age;==>指標的值pt現在無法修改,現在只能指向age,不能指向month,但是指標指向的值可以修改,比如*pt=10;

④在乙個函式的形參中宣告引數為const,可以保證從實參傳進來的引數在此函式中不被修改。

⑤對於類的成員函式,有時候必須指定其為const型別,表明其是乙個常函式,不能修改類的成員變數(推薦這麼做,如size())

⑥const修飾類的成員變數,只能在初始化列表中賦值

⑦const物件只能呼叫const成員函式,非const物件既可以呼叫const成員函式,也可以呼叫非const成員函式

ps:盡可能的使用const

C const限定符(一)

有時候我們希望定義這樣一種變數,它的值不能被改變,比如需要設定乙個快取區大小 const int buffsize 512 這樣就通過使用const限定符將這個大小設定為了常量,之後,任何為buffsize賦值的操作都將引發錯誤 buffsize 1024 報錯,試圖向const物件寫值const物...

關於const 限定符

很多引用自c primer一書 比如有時候需要將乙個文字中的資料複製到另外乙個文字。我們需要使用緩衝區,緩衝區的大寫我們可以自己來決定比如1024個位元組,這是乙個常量,我們使用bufsize 1024.但是bufersize物件本身是乙個變數。所以我們可以引入const限定符,它將乙個物件轉化為常...

C const 限定符 指標的使用方法

c 中的常量符號const限定符相信大家都比較熟悉它對於基本型別變數的使用方法了 無非有最常用的那種 const type name value 在宣告的時候進行初始化。這個放下不表,看下面 const int a int const a int const a 這三種const限定符指標有什麼區別...