首先,明白乙個概念 – 指向常量的指標。比如:const int *pt; 這說明:
pt是指向int型常量的指標!!!pt只是個const int型指標!!!
它的值 pt會改變,但是它指向的值不能變 。
從右向左看,p為常量,且乙個int*的指標。p的值無法改變,但是p指向的值可以改變。
int a=10;
int b=11;
int*
const p=
&a;p=
&b;//錯誤,p只能指向a,p是個常量,不能變
*p=12
;//正確,此時a的值變為12
執行如下://指向常量指標-->變數 指標值可變,指向的量的值不可變
int age=39;
int wage=
20000
;const
int*p=
&a;cout<<
"p的值為:"
<
p=&wage;
cout<<
"p的值為:"
<
*p=66666
;//錯誤,不能改wage的值
繼續
禁止將常量陣列的位址賦給非常量指標:常量陣列名 不能作為引數 傳給非常量的形參://指向const指標-->常量 個人感覺意義不大
const
int a=8;
const
int*pt=
&a;//常規指標-->const量 是不可以的
const
int b=1;
int*pt=
&b;//pt指向的值可以改變,這與b是常量顯然矛盾
比如 const int num[3]=;
int sum(int arr, int n);
…int j= sum( num, 3);
以上是絕對不行的!!!
在函式引數裡將指標宣告為指向常量的指標有兩個好處:
1)避免無意間修改資料帶來的錯誤;
2)能夠處理const和非const實參。
學習 C語言 const和指標
複製鏈結 關鍵字const用來定義常量,如果乙個變數被const修飾,那麼它的值就不能再被改變。const int a 5 int const a 5 上面這兩種寫法都一樣,都是表示變數a的值不能被改變了。需要注意的地方是,用const修飾變數時,一定要給變數初始化,否則之後就不能再進行賦值了。例如...
C 學習之指標和const限定符
今天看了 c primer 4.2.5節 指標和const限定符 覺得理解起來像繞口令似的,好不容易捋順一遍,一做題,又亂了。做 點筆記,供參考。1 指向const物件的指標 1 我們可以用指標來修改其所指物件的值。2 如果,某指標指向const物件,則不允許用指標來改變其所指的const值。3 c...
C和指標 const指標
一,入門 const 指標 指標指向的內容不能變,指標可以改變指向 指向const的指標 指標不可以改變指向,指標指向內容可以變 include stdio.h int main 二,深度解析 大致說來其可分為三種情況 const修飾指標,const修飾引用,const修飾指標的引用.const修飾...