news 2026/3/3 3:38:27

38.一文分清:const int p/int* const p 等写法差异

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
38.一文分清:const int p/int* const p 等写法差异

先明确核心规则

const的作用是修饰“其右侧的内容”为只读(不可修改),判断时只需看const挨着谁:

  • 若挨着变量名 → 变量值不可改;
  • 若挨着指针符号*→ 指针指向的内容不可改;
  • 若既挨着*又挨着变量名 → 指针指向的内容 + 指针本身都不可改。

逐一拆解四种写法的区别

1.const int pint const p(无指针,修饰普通变量)

结论:这两种写法完全等价

  • 含义:定义一个只读的整型变量 p,p 的值一旦初始化就不能修改。
  • 示例代码:
#include <stdio.h> int main() { const int p = 10; // 等价于 int const p = 10; // p = 20; // 编译报错!const修饰的变量值不可修改 printf("p = %d\n", p); // 仅能读取,输出:p = 10 return 0; }
  • 关键:无指针时,const放在int前/后没有区别,都是限制变量值不可改。
2.const int *p(指针,const 修饰*p

含义:定义一个指针 p,const修饰的是*p(指针指向的内容),即:

  • 指针 p 本身可以修改(能指向其他地址);
  • 指针指向的内容*p不可修改(只读)。
  • 示例代码:
#include <stdio.h> int main() { int a = 10, b = 20; const int *p = &a; // p指向a,*p不可改 // *p = 100; // 编译报错!指向的内容只读 p = &b; // 合法!指针本身可以改,现在p指向b printf("*p = %d\n", *p); // 输出:*p = 20 return 0; }
3.int * const p(指针,const 修饰 p)

含义:定义一个指针 p,const修饰的是 p(指针本身),即:

  • 指针 p 本身不可修改(不能指向其他地址);
  • 指针指向的内容*p可以修改。
  • 示例代码:
#include <stdio.h> int main() { int a = 10, b = 20; int * const p = &a; // p指向a,指针本身不可改 *p = 100; // 合法!指向的内容可以改 // p = &b; // 编译报错!指针本身只读 printf("*p = %d\n", *p); // 输出:*p = 100 return 0; }
4.const int * const p(双重 const 修饰指针)

含义const既修饰*p又修饰 p,是“只读指针 + 只读内容”,即:

  • 指针 p 本身不可修改(不能指向其他地址);
  • 指针指向的内容*p也不可修改。
  • 示例代码:
#include <stdio.h> int main() { int a = 10, b = 20; const int * const p = &a; // 双重只读 // *p = 100; // 编译报错!指向的内容只读 // p = &b; // 编译报错!指针本身只读 printf("*p = %d\n", *p); // 仅能读取,输出:*p = 10 return 0; }

总结

  1. 无指针时,const int pint const p完全等价,都是普通变量值不可改;
  2. 有指针时,看const位置:挨着*则“指向的内容不可改”,挨着指针名则“指针本身不可改”;
  3. 双重constconst int * const p)是最严格的,指针和指向的内容都只读。

记住核心口诀:const 修饰其右侧的内容,就能快速判断所有写法的含义。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/1 19:57:10

青龙脚本库终极指南:5分钟快速上手自动化脚本部署

想要轻松实现各种自动化操作吗&#xff1f;滑稽青龙脚本库为您提供了完美的解决方案。无论您是技术新手还是资深开发者&#xff0c;通过本指南都能快速掌握青龙面板与脚本库的完美配合。 【免费下载链接】huajiScript 滑稽の青龙脚本库 项目地址: https://gitcode.com/gh_mir…

作者头像 李华
网站建设 2026/3/2 4:15:37

噪音层控制:模拟真实环境中带噪语音的生成场景

噪音层控制&#xff1a;模拟真实环境中带噪语音的生成场景 在短视频、虚拟主播和互动内容爆炸式增长的今天&#xff0c;用户对语音合成的要求早已超越“能说话”这一基本功能。人们期待的是有情绪、有个性、能融入场景的声音——比如一段深夜直播中的低语&#xff0c;或是在嘈杂…

作者头像 李华
网站建设 2026/3/1 17:29:07

PyInstaller逆向神器:3步解锁Python打包文件隐藏内容

PyInstaller逆向神器&#xff1a;3步解锁Python打包文件隐藏内容 【免费下载链接】pyinstxtractor PyInstaller Extractor 项目地址: https://gitcode.com/gh_mirrors/py/pyinstxtractor 你是否曾经面对一个由PyInstaller打包的Python可执行文件&#xff0c;却无法获取其…

作者头像 李华
网站建设 2026/3/2 20:18:38

方言口音模仿:IndexTTS 2.0在地域性发音上的表现评估

方言口音模仿&#xff1a;IndexTTS 2.0在地域性发音上的表现评估 在短视频内容爆炸式增长的今天&#xff0c;一条“土味十足”的方言配音往往比标准普通话更能引爆流量。东北话的幽默感、四川话的亲和力、粤语腔调的市井气息——这些带有强烈地域色彩的声音&#xff0c;正成为内…

作者头像 李华
网站建设 2026/2/23 3:04:55

群晖DSM 7.2.2系统Video Station功能完整恢复技术解决方案

群晖DSM 7.2.2系统Video Station功能完整恢复技术解决方案 【免费下载链接】Video_Station_for_DSM_722 Script to install Video Station in DSM 7.2.2 项目地址: https://gitcode.com/gh_mirrors/vi/Video_Station_for_DSM_722 在群晖DSM 7.2.2系统更新后&#xff0c;…

作者头像 李华