常量指標和指標常量

來源:互聯網
上載者:User

標籤:

 

http://note.youdao.com/yws/public/redirect/share?id=59efe4c935f3731fb0a59bf90fd7d91e&type=false

 

 

[http://blog.csdn.net/beyond0525/article/details/7409305](http://blog.csdn.net/beyond0525/article/details/7409305 "常量指標和指標常量")


### 參考c++primer p110 *指標和const限定符*
const和int的前後順序不影響
const int * p =int const *p


和int* const p

cons int *p const 在前 所以是常量指標

常量指標p:指向的地址可以變,但內容不可以重新賦值,內容的改變只能通過修改地址指向後變換。 
const int *p = (const int) * p p指標 指向 const int

當然也可給其賦值非const int 的值的地址
**const 這裡修飾的int  而不是 p 可以通過 const int temp 給p 賦值,
也可以int temp 給p 賦值,因為const 修飾的是指標,所示p的值可以改變**

```
const int * p;
int temp1=1;
const int temp2=1;
p=temp1;//ok
p=temp2;//ok
```

p是一個指標 指向的一個const int *

所以 p可以指向 const int a ;也可以指向const  int b;
就是p所指向的地址是可以改變的,但不可以通過 *P來改變這個指向的值。

 

而int * const P 
指標在前,所以是指標常量 
const修飾p 這裡p 是一個int * ,所p所指向的地址是不能改變的
![圖片](http://i2.piimg.com/4851/cccec2e67e410e11.jpg)

```
int a =3; 
int b = 1; 
int c = 2; 
int const *p1 = &b;//const 在前,定義為常量指標 
int *const p2 = &c;//*在前,定義為指標常量

// p1 = &a是正確的,但 *p1 = a是錯誤的。
// p2= &a是錯誤的,而*p2 = a 是正確的。

//被常量指標修飾期間,該值不能被修改 
/*如果p1被賦值了一個非const變數,那麼不能通過p1來修改這個變數值,但可以通過其他方式來修改此
變數的值,這是p1所指向的值會隨之發生改變*/
```

常量指標和指標常量

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.