-
加有constkeyword的几种情况的辨析
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; 这样的方式仅仅能看自己的,不能改动别人的,也不能改变自己。
仅仅能看自己: