int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的差别
Posted gavanwanggw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的差别相关的知识,希望对你有一定的参考价值。
-
加有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; 这样的方式仅仅能看自己的,不能改动别人的,也不能改变自己。
仅仅能看自己:
以上是关于int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的差别的主要内容,如果未能解决你的问题,请参考以下文章
以下关于指针的说法,正确的是( ) A.int *const p与int const *p等价 B.const int *p与int *const p等价 C.const int *p与int c
(研) int(*p)[10]; int *p[10]; int(*)[10]; 之间的区别