int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的区别
加有const關鍵字的幾種情況的辨析
| const修飾的代碼 | 含義(特點) | 等價性 |
| int *p = # | 1.?????? 可以讀自己 2.?????? 可以通過*p改自己 3.?????? 可以通過p = &data來看別人 | 權限最大 |
| cons int *p = # | 1、const放在左邊意味著指向的是常量,這個常量不可以修改, 2、p = &data; (地址可以修改) 3、*p = 30;(這個時候是錯誤的) | 這兩者等價(應用:查看別人的賬戶) |
| int const *p = # | (和上面的等價)限定只能讀不可以修改,地址可以移動 | |
| int * const p = # | 不可以修改自己的地址,但是可以通過*p來修改自己的值 | ? |
| const int * const p = # | 不可以修改地址來看其它的值,也不可以修改自己的,只能看自己的 | 1、可看自己 2、不改自己 3、不能看別人 |
| int const * const p = # | 限定只能看自己的賬戶,只能讀不可寫 |
?
只能在初始化的時候才能夠賦值(const限定了不能隨便修改變量)
const總結
const在’*’左邊意味著我指向的是常量。
const在’*’右邊意味著我指針式一個常量。
當把上面的p=&data;改成了*p = 3;這個時候就不可以了。截圖如下:
?
int const *p
int * const p; 不可以修改自己的地址,但是可以通過*p來修改自己的值
可以通過*p的方式進行修改
6.const int * const p = &data; 這種方式只能看自己的,不能修改別人的,也不能改變自己。
只能看自己:
總結
以上是生活随笔為你收集整理的int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的区别的全部內容,希望文章能夠幫你解決所遇到的問題。