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 = &

  1. 加有const关键字的几种情况的辨析

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; 这种方式只能看自己的,不能修改别人的,也不能改变自己。

只能看自己:

目录
相关文章
|
5月前
|
Java
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
这篇文章解释了Java中`int`基本数据类型和其包装类`Integer`之间的区别,并指出在进行`==`运算时,`Integer`会拆箱为`int`类型,然后比较它们的值是否相等。
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
|
8月前
|
缓存 安全 Java
Java的Integer和int有什么区别?
Java的Integer和int有什么区别?
67 1
|
8月前
|
存储 编译器 程序员
int 和 long 的区别
int 和 long 的区别
|
存储 Java 编译器
|
8月前
|
存储 C语言
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
80 0
|
C语言
const int *和int * const的区别【C语言/指针】
const int *和int * const的区别【C语言/指针】
78 0
|
存储 缓存 Java
【Java】int和Integer的区别?为什么有包装类?
【Java】int和Integer的区别?为什么有包装类?
const int*p 与 int const *p与 int * const p与const int * const p的区别(有明显对比,超级详细,超级好记)
当只有一个const并且const在*左边时: (const int*p 与 int const *p,)*p的值不能改,但是p(地址)能改.我们可以看到第一,三张图片第五行*p下面有红线表示错误.而第二,四张没有红线的地方表示正确.所以我们可知道const int*p 与 int const *p是相同的只是书写方法不同.
84 0
C++ int const 和 const int 的区别
C++ int const 和 const int 的区别
201 0
|
存储 关系型数据库 MySQL
MySQL 中 int (10) 和 char (10) 和 varchar (10) 的区别
MySQL 中 int (10) 和 char (10) 和 varchar (10) 的区别
192 0