单片机/C/C++八股:(二十)指针常量和常量指针

上一篇 下一篇
栈和堆的区别?

单独说 指针常量和常量指针

const 关键字修饰指针变量,就可以得到指针常量和常量指针

const 与指针结合时,位置决定含义。记住口诀:

  • const 在 * 左边是指针常量,内容不能改,但指针可以改;
  • const 在 * 右边是常量指针,指针不能改,但内容可以改;
  • * 两边都有 const,内容和指针都不能改。
声明 含义 能否修改指针? 能否修改指向的内容?
const int *p 或 int const *p 指针常量(指向常量的指针) ✔️ 可以(p = &x;) ❌ 不可以(*p = 10; 错误)
int *const p = &x; 常量指针 ❌ 不可以 ✔️ 可以(*p = 10;)
const int *const p = &x; 指向常量的常量指针 ❌ 不可以 ❌ 不可以

应用示例:

c 复制代码
const char *str = "Hello";     // 推荐写法:字符串字面量是只读的
// str[0] = 'h';               // × 运行时可能崩溃(写只读内存)
str = "World";                 // √ 指针可变

char buffer[10];
char *const ptr = buffer;      // 指针固定指向 buffer
ptr[0] = 'A';                  // √ 内容可变
// ptr = another_buffer;       // × 指针不可变

相关推荐
春涧草茶7 分钟前
慢就是快16-1协程
开发语言·前端·python
Dovis(誓平步青云)1 小时前
启元 T1 Pro 人机相声搭档:语音-触摸双通道的启元机器人节奏引擎设计
开发语言·前端·javascript·microsoft·交互
做科研的周师兄1 小时前
【R语言实战】MixSIAR 氢氧同位素水源解析全流程:从混合空间校验到贝叶斯 MCMC 收敛诊断(后附完整代码)
java·大数据·开发语言
闻缺陷则喜何志丹1 小时前
【C++特性】四种类型转
c++·算法·类型转换
.痞老板.2 小时前
java ee--计算机是如何工作的
java·开发语言·java-ee
奇树谦2 小时前
Qt Quick 图片加载与 GPU 纹理机制详解:QImage、QQuickTextureFactory、QSGTexture 与异步加载
开发语言·qt·系统架构
青梅味猪大肠2 小时前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统
starzy19903 小时前
深入理解Scala可变Map:动态构建场景下的性能与设计权衡
开发语言·scala
zhanghaha13145 小时前
C# 系列教程_7 判断语句(分支)保姆级精讲
开发语言·c#
apcipot_rain5 小时前
C++转Java日记(02)
java·开发语言·c++