C語言中const的作用解析

2021-10-23 16:50:59 字數 1100 閱讀 8933

問題描述:以下幾個const的用法,其含義分別是什麼呢?

const char *p ;

const (char *) p ;

char* const p ;

(char*) const p ;

const char* const p ;

1.const 修飾成員變數

const修飾指標變數時:

只有乙個const,如果const位於*左側,例如:

const

int* p=

&i;*p=26;

//error! (*p)是const

i=26

;//ok

p=&j;

//ok

這種寫法表示指標所指資料是常量,不能通過解引用修改該資料;指標本身是變數,可以指向其他的記憶體單元。也就是說,這個const不能讓變數i成為const常量,不能通過這個指標p去修改變數i,但是p可以修改(p=&j等),i也可以修改(如i++;i=其他值等)。

只有乙個const,如果const位於*右側,例如:

int

*const q =

&i;//q是const

*q =26;

//ok

q++;

//error!

這種寫法表示指標q本身是常量,不能指向其他記憶體位址,q所指向的位址不能修改!但是指標所指的資料可以通過解引用修改。

(3)兩個const,*左右各乙個,表示指標和指標所指資料都不能修改,例如:

int

const

*const p =

&i;///const data,const pointer

那麼一下三種寫法分別是什麼意思呢?

const int * p = &i;

int const * p = &i;

int * const p = &i;

這裡面只有兩中意思:要麼是指標不可修改,要麼是不可通過指標修改。判斷方法:

看const在*的前面還是後面。

所以前兩種寫法含義相同。

c語言中的const的作用及解析

有時候我們希望定義這樣一種變數,它的值不能被改變,在整個作用域中都保持固定。例如,用乙個變數來表示班級的最大人數,或者表示緩衝區的大小。為了滿足這一要求,可以使用const關鍵字對變數加以限定 const int maxnum 100 班級的最大人數 這樣 maxnum 的值就不能被修改了,任何對 ...

C語言中const用法解析

const修飾的變數儲存位置,和不用const修飾的沒區別!關鍵字const用來定義常量,如果乙個變數被const修飾,那麼它的值就不能再被改變,我想一定有人有這樣的疑問,c語言中不是有 define嗎,幹嘛還要用const呢,我想事物的存在一定有它自己的道理,所以說const的存在一定有它的合理性...

C語言中的const

c語言的中的const,代表的含義是 不可改變的變數 或者可以成為 偽常量 c 中 const,被稱為 乙個有型別描述的常量 const int liv num 10 liv num 18 error 因為liv num 被const修飾不可被直接賦值 那麼,我為什麼說是 偽常量 我們知道在c中給變...