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是相同的只是书写方法不同.

小编先和读者们说一下结论:

当const在*左边时:*p不能改,p能改.

当const在*右边时:*p能改,p不能改.

当const在*左边和右边都存在时:*p和p都不能改.

原因如下:

我们先定义一个变量和指针

(1)当只有一个const并且const在*左边时:

(const int*p 与 int const *p,)*p的值不能改,但是p(地址)能改.我们可以看到第一,三张图片第五行*p下面有红线表示错误.而第二,四张没有红线的地方表示正确.所以我们可知道const int*p 与 int const *p是相同的只是书写方法不同.

77bd1684747b5d151533f4ba2e736724_879b6e8107dd4ff2bbd19c82294a47cb.png

fe4f6f7dec865f3bd11aec8bf5d0c61e_cf4ee5febbe44367a757727bb18bf1a5.png

(2)当只有一个const并且const在*右边时:

(int * const p)*p的值能改,但是p不能改.如图

15b02125a94e421de4f30c22de94c657_cf44003bae5f454dbd5dc47a0bf19782.png


(3)当const在*左边和右边都有时:

(const int * const p)*p和p都不能改,如图:

33bde26a11faacef340f622a5438fe38_49360edefadb401a9ab1440e9db544a2.png

48f2c560305afaf8f59e01ca7794aa3e_af4e7f45d16f42ba8cf8869d34f0227b.png

还有不理解的小伙伴欢迎评论或者私聊.  


目录
相关文章
|
8月前
|
存储 缓存 人工智能
Java int和Integer的区别
本文介绍了Java中int与Integer的区别及==与equals的比较机制。Integer是int的包装类,支持null值。使用==比较时,int直接比较数值,而Integer比较对象地址;在-128至127范围内的Integer值可缓存,超出该范围或使用new创建时则返回不同对象。equals方法则始终比较实际数值。
294 0
|
Linux
linux syscall和int 80的区别
通过以上内容,希望您能更清晰地理解 `int 0x80` 和 `syscall` 的区别及其在不同系统架构中的应用。
969 99
|
SQL 存储 关系型数据库
int(1) 和 int(10) 有什么区别?
在MySQL中,`int`类型后面的数字(如`int(1)`、`int(10)`)并不影响其存储范围,最大值仍为4294967295(无符号)。这些数字只有在配合`zerofill`使用时才有意义,用于显示时不足位数补0。例如,`int(4) zerofill`会将1显示为0001。这适用于需要固定长度编号的场景,如学号等。
417 3
int(1) 和 int(10) 有什么区别?
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
这篇文章解释了Java中`int`基本数据类型和其包装类`Integer`之间的区别,并指出在进行`==`运算时,`Integer`会拆箱为`int`类型,然后比较它们的值是否相等。
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
|
存储 Java 编译器
|
缓存 安全 Java
Java的Integer和int有什么区别?
Java的Integer和int有什么区别?
240 1
|
存储 编译器 程序员
int 和 long 的区别
int 和 long 的区别
|
存储 C语言
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
229 0
|
C语言
const int *和int * const的区别【C语言/指针】
const int *和int * const的区别【C语言/指针】
313 0
|
存储 缓存 Java
【Java】int和Integer的区别?为什么有包装类?
【Java】int和Integer的区别?为什么有包装类?