C 學習筆記之指標和const

2021-10-02 20:56:13 字數 1435 閱讀 7238

首先,明白乙個概念 – 指向常量的指標。比如: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修飾...