写在前面:大家好K。首先为你点进这篇有趣的文章点赞👍!文章在撰写过程中难免有疏漏和错误,欢迎你在下方留言指出文章的不足之处;如果觉得这篇文章对你有用,也欢迎你点赞和留下你的评论。更多内容请点进👉我的博客K。👈阅览。
1. 名字区分
// 指针变量定义方法
// 示例:定义一个指向int类型的指针,初始化为空
int * p = NULL;
众所周知,*
在定义时标志这是指针,在使用时表示取内存单元内容;p
是变量名。
这样被定义好后,可以对变量名p
有两个操作:
-
查看
*p
(p所指内容)的值,也可修改*p
的值; -
查看
p
(p本身存放了所指内存的地址值)的值,也可修改p
的值(即修改其所指)
如果要定义指针常量、常量指针,加const
的位置在*
前或变量名p
前,那么它俩该如何区分呢?
记忆方法
const
含义是”常量“,那么
- 常量指针
申明示例:
const int * p = NULL
或int const * p=Null
忽略int
说明类型,*
标志这是指针。∵const
在*
前,表示常量指针
- 指针常量
申明示例:
int * const p = NULL
*
标志这是指针。∵*
在cosnt
前,表示指针常量
2. 用法区分
const
含义:被
const
修饰的量,在定义后就不能改变
*
含义:
在定义时标志这是指针
在使用时表示取内存单元内容
2.1 常量指针 const *
申明示例:
const int * p = NULL
或int const * p=Null
const
修饰*
*
的第一个含义,仅在定义变量时用。现在我们讨论的是使用时的区别,所以只看*
的第二个含义–取内存单元内容
-
*
被const
修饰,表示*p
是只读的,不能被修改值 -
但是,
p
是可以修改的,即可以重新指向另一个内存单元
2.2 指针常量 * const
申明示例:
int * const p = NULL
const
修饰变量名p
-
const
在*
的后面,所以不关*
的事。所以,*p
(即内容值)可以随意修改 -
p
被const
修饰,所以,p
(即指向)不能被修改。
3. C++的引用与指针常量
定义示例:int &b = a;
查看文档可知,引用只可作为唯一一个变量的别名(在定义后就不能被修改成别的变量的别名)
使用时,a
和b
的值同时修改同时变化
是不是和指针常量很像:内容可改,而指向不能改
引用的内部实现就是一个指针常量,然后被高度封装以方便使用
今天的文章【C/C++】指针常量、常量指针分不清?竟还能这样记!分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6279.html