【C/C++】指针常量、常量指针分不清?竟还能这样记!

【C/C++】指针常量、常量指针分不清?竟还能这样记!文章目录名字记忆名字记忆

写在前面:大家好K。首先为你点进这篇有趣的文章点赞👍!文章在撰写过程中难免有疏漏和错误,欢迎你在下方留言指出文章的不足之处;如果觉得这篇文章对你有用,也欢迎你点赞和留下你的评论。更多内容请点进👉我的博客K。👈阅览。

1. 名字区分

// 指针变量定义方法
// 示例:定义一个指向int类型的指针,初始化为空
int * p = NULL;

众所周知,*在定义时标志这是指针,在使用时表示取内存单元内容p是变量名。

这样被定义好后,可以对变量名p有两个操作:

  1. 查看*p(p所指内容)的值,也可修改*p的值;

  2. 查看p(p本身存放了所指内存的地址值)的值,也可修改p的值(即修改其所指)

如果要定义指针常量、常量指针,加const的位置在*前或变量名p前,那么它俩该如何区分呢?

记忆方法

const含义是”常量“,那么

  • 常量指针

申明示例:const int * p = NULLint const * p=Null

忽略int说明类型,*标志这是指针。∵const*前,表示常量指针

  • 指针常量

申明示例:int * const p = NULL

*标志这是指针。∵*cosnt前,表示指针常量

2. 用法区分

const含义:

const修饰的量,在定义后就不能改变

*含义:

  1. 在定义时标志这是指针

  2. 在使用时表示取内存单元内容

2.1 常量指针 const *

申明示例:const int * p = NULLint const * p=Null

const修饰*

*的第一个含义,仅在定义变量时用。现在我们讨论的是使用时的区别,所以只看*第二个含义–取内存单元内容

  1. *const修饰,表示*p只读,不能被修改值

  2. 但是,p是可以修改的,即可以重新指向另一个内存单元

2.2 指针常量 * const

申明示例:int * const p = NULL

const修饰变量名p

  1. const*的后面,所以不关*的事。所以,*p(即内容值)可以随意修改

  2. pconst修饰,所以,p(即指向)不能被修改

3. C++的引用与指针常量

定义示例:int &b = a;

查看文档可知,引用只可作为唯一一个变量的别名(在定义后就不能被修改成别的变量的别名)

使用时,ab的值同时修改同时变化

是不是和指针常量很像:内容可改,而指向不能改

引用的内部实现就是一个指针常量,然后被高度封装以方便使用

今天的文章【C/C++】指针常量、常量指针分不清?竟还能这样记!分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6279.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注