常量指標和指標常量 C C

2022-06-23 17:21:08 字數 1015 閱讀 4649

按英文的字面意思,從右向左理解就比較清楚了:

const char *pointer

常量指標(底層const):pointer to const

字面意思:指向常量的指標,不能通過這個指標修改指向的內容

char *const pointer

指標常量(頂層const):const pointer

字面意思:指標本身是個常量,不能修改這個指標的指向

看一段**:

char hello[6] = "

hello";

char world[6] = "

world";

const

char *p2const = hello; //

pointer to const

char *const constp = hello; //

const pointer

p2const = world; //

value of p2const is "world"

//constp = world;

//constant pointer cannot be reassigned

constp[

0] = '

y'; //

value of constp is "yello"

//p2const[0] = 'y';

//pointer to constant, cannot change the value

cout

<< p2const << '

'<< constp << endl; //

"world yello"

! 注:c++中  auto  型別推斷會忽略頂層const,保留底層const。如果設定為  auto&  auto的引用時,頂層const性質保留

C C 指標常量和常量指標

常量指標 常量指標是指向常量的指標,指標指向的記憶體位址的內容是不可修改的。常量指標定義 const int p a p 告訴編譯器是常量,不能將 p作為左值進行操作。但這裡的指標p還是乙個變數,它的內容存放常量的位址,所以先宣告常量指標再初始化是允許的,指標也是允許修改的,例如 int a 0,b...

C C 指向常量的指標和常量指標

由於之前沒有系統的看過書籍,導致概念混淆,由 c primer 中得到,const修飾指標有兩種形態,分別是指向常量的指標 pointer to const 和常量指標 const pointer ps 對之前看過此部落格的同學表示抱歉 int a 1 int b 2 const int p a 等...

再學C C 之 指標常量 和 常量指標

1 指標常量,將指標的指向當成常量。即指標變數的值只能在定義的時候初始化,定義後不能修改,也就是說不能改變指標變數的指向。但是不影響所指物件的訪問特徵。其定義形式為 型別 const 指標 型別是該指標所指物件的型別,為指標型別說明符。例項1 int var1 100 int var2 200 初始...