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的差别相关的知识,希望对你有一定的参考价值。

??
  1. 加有constkeyword的几种情况的辨析

const修饰的代码

含义(特点)

等价性

int *p = #

1.       能够读自己

2.       能够通过*p改自己

3.       能够通过p = &data来看别人

权限最大

cons int *p = #

1const放在左边意味着指向的是常量。这个常量不能够改动,

2p = &data; (地址能够改动)

3*p = 30;(这个时候是错误的)

这两者等价(应用:查看别人的账户)

int const *p = #

(和上面的等价)限定仅仅能读不能够改动,地址能够移动

int * const p = #

不能够改动自己的地址。可是能够通过*p来改动自己的值

 

const int * const p = #

不能够改动地址来看其他的值,也不能够改动自己的,仅仅能看自己的

1、可看自己

2、不改自己

3、不能看别人

int const * const p = #

限定仅仅能看自己的账户,仅仅能读不可写

 

  1. 仅仅能在初始化的时候才可以赋值(const限定了不能随便改动变量)

  2. const总结

const’*’左边意味着我指向的是常量。

const’*’右边意味着我指针式一个常量。

技术分享

当把上面的p=&data;改成了*p = 3;这个时候就不能够了。截图例如以下:

技术分享

 

  1. int const *p

技术分享

  1. 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]; 之间的区别

const关键字与指针

int *p[3]和int (*p)[3] 的区别,举例说明

075.程序的内存模型-new运算符

int * const * p和int ** const p之间有什么区别