天天看點

const int *p和int * const p的差別(常量指針與指向常量的指針) .

對于指針和常量,有以下三種形式都是正确的:

下面依次對這三種類型進行介紹。

因為*操作符是左操作符,左操作符的優先級是從右到左,對于

先看const再看* ,是p是一個常量類型的指針,不能修改這個指針的指向,但是這個指針所指向的位址上存儲的值可以修改。

const int *p和int * const p的差別(常量指針與指向常量的指針) .
const int *p和int * const p的差別(常量指針與指向常量的指針) .

View Code

const int *p和int * const p的差別(常量指針與指向常量的指針) .
const int *p和int * const p的差別(常量指針與指向常量的指針) .

先看*再看const,定義一個指針指向一個常量,不能通過指針來修改這個指針指向的值。

const int *p和int * const p的差別(常量指針與指向常量的指針) .
const int *p和int * const p的差別(常量指針與指向常量的指針) .

 是以指針p所指向的整型數是一個常量,其值不能被修改。

對于“指向常量的常量指針”,就必須同時滿足上述1和2中的内容,既不可以修改指針的值,也不可以修改指針指向的值。

字元數組和字元指針的定義如下:

可以将a了解為常量指針,而p為指向常量的指針,代碼執行個體如下:

const int *p和int * const p的差別(常量指針與指向常量的指針) .
const int *p和int * const p的差別(常量指針與指向常量的指針) .

輸出值為:

IaLove You!

I Love You!

a

L