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

相关推荐
破茧蝴蝶3 小时前
Python分布式爬虫完整教程
开发语言·python
狗凯之家源码网4 小时前
全新 PHP 轻量客服聊天室源码深度评测
开发语言·php·聊天室系统
远离UE44 小时前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5
keyipatience4 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
一拳一个呆瓜4 小时前
【STL】文件系统导航
c++·stl
All for pursuit.5 小时前
【动态规划-21】312.戳气球
数据结构·c++·算法·leetcode·动态规划
栈帧之外5 小时前
【C++】STL之set
开发语言·c++
catchadmin6 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
开发语言·php
zhanghaha13146 小时前
C++构造函数的一些其他应用(逐词逐句保姆讲解)
c++
jimy17 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++