单片机/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;       // × 指针不可变

相关推荐
晓蛋4 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
倒头就睡的小比特4 天前
算法竞赛C++常用的STL
c++·算法
weilx12344 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
牵猫散步的鱼儿4 天前
重载、重写(覆盖)、重定义区别
c语言
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
phltxy4 天前
C 语言指针:从内存地址到灵活的数据访问
c语言
Smileyqp沛沛4 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
C语言小火车4 天前
C/C++ 为什么需要编译器?
开发语言·c++