【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的值同时修改同时变化

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177722.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午6:52
下一篇 2026年3月26日 下午6:52


相关推荐

  • android面试题2022

    android面试题2022面试题除了你不会的其余都会,除了你知道的其余都知道,除了你答不上来的答上来了。不积跬步无以至千里,多思考多学习,祝你早日成为大佬。一、mt1.内存优化常用手段2.leacknanry的原理3.腾讯bugly原理4.自己实现一个日志收集的思路,如何收集crash信息5.handler原理及源码6.常见的内存泄漏的方式7.bitmap是在什么内存里1android2.2(APIlevel8)和更早的版本,垃圾回收时,会阻塞UI线程,造成卡顿。而2.3(APIle

    2022年5月21日
    45
  • PINN学习与实验(一)

    PINN学习与实验(一)目录所用工具数学方程模型搭建所有实现代码参考文献今天第一天接触 PINN 用深度学习的方法求解 PDE 看来是非常不错的方法 做了一个简单易懂的例子 这个例子非常适合初学者 所用工具使用了 python 和 pytorch 进行实现 python3 6toch1 10 数学方程使用一个最简单的常微分方程 f x f x 1 f x 0 2 f x f x hspace 2cm 1 f x 0 hspace 2 6cm 2 f x f x 1 f x

    2026年3月17日
    2
  • 百度文心一言是什么意思

    百度文心一言是什么意思

    2026年3月12日
    2
  • 什么是可重入函数?

    什么是可重入函数?可重入函数是指能够被多个线程 同时 调用的函数 并且能保证函数结果正确性的函数 在 C 语言中编写可重入函数时 尽量不要使用全局变量或静态变量 如果使用了全局变量或静态变量 就需要特别注意对这类变量访问的互斥 一般采用以下几种措施来保证函数的可重入性 信号量机制 关调度机制 关中断机制等方式 需要注意的是 不要调用不可重入的函数 当调用了不可重入的函数时 会使该函数也变成为不可重入的函数 一般驱

    2026年3月17日
    2
  • icem二维非结构网格划分_ICEM蜗壳非结构网格划分[通俗易懂]

    icem二维非结构网格划分_ICEM蜗壳非结构网格划分[通俗易懂]ICEM-蜗壳网格划分导入模型你需要在ICEM中导入你的模型,一般用的模型格式为STP、IGS、X_T等通用第三方格式。同时如果你有提前画好的网格你也可以导入进来。PRAT建立创建好各部分的Part,并创建body,与此同时修复模型,对于简单的模型只需要做一个修复模型的命令就行,但是对于一些复杂的模型再导入到ICEM中很多部位都是需要做修复的,这时候就需要对这一部分破损的模型进行修复。…

    2022年5月22日
    75
  • MySQL数据库使用命令行备份|MySQL数据库备份命令

    MySQL数据库使用命令行备份|MySQL数据库备份命令转至  神马和浮云 ,命令未测试,主要是方便操作mysql时需要而记的笔记  例如:数据库地址:127.0.0.1数据库用户名:root数据库密码:pass数据库名称:myweb 备份数据库到D盘跟目录mysqldump-h127.0.0.1-uroot-ppassmyweb>d:/backupfile.sql备份到当前目录备份MySQ…

    2022年6月10日
    35

发表回复

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

关注全栈程序员社区公众号