news 2026/5/9 1:49:10

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/5/3 9:42:24

企业微信外部群智能化推送的深度实现方案

QiWe开放平台提供了后台直登功能&#xff0c;登录成功后获取相关参数&#xff0c;快速Apifox在线测试&#xff0c;所有登录功能都是基于QiWe平台API自定义开发。 在企业私域运营中&#xff0c;外部群是服务客户的最前线。如何通过二次开发&#xff0c;实现既能“主动出击”又不…

作者头像 李华
网站建设 2026/5/5 17:12:50

SEO面包屑导航完全指南:提升用户体验与搜索排名的双重利器

在网站优化的版图中&#xff0c;面包屑导航&#xff08;Breadcrumbs&#xff09;是一个容易被忽略却极具价值的元素。它不仅能为用户提供清晰的浏览指引&#xff0c;更能帮助搜索引擎理解网站结构、优化页面权重分配&#xff0c;成为提升SEO效果的“隐形推手”。本文将从定义、…

作者头像 李华
网站建设 2026/5/6 12:10:35

回滚预案制定:当IndexTTS 2.0更新出问题时如何快速恢复

回滚预案制定&#xff1a;当IndexTTS 2.0更新出问题时如何快速恢复 在AI语音合成技术迅速渗透内容创作领域的今天&#xff0c;一个看似微小的模型更新失误&#xff0c;可能直接导致成千上万条视频配音失真、虚拟主播“变声”甚至服务中断。B站开源的 IndexTTS 2.0 凭借其高自然…

作者头像 李华
网站建设 2026/5/2 19:59:57

【紧急警告】Next.js新版本可能破坏Dify集成,速看修复方案

第一章&#xff1a;Next.js新版本引发的Dify集成危机近期&#xff0c;Next.js 发布了最新主版本&#xff0c;引入了运行时优化与服务端组件重构等重大变更。这一更新在提升性能的同时&#xff0c;也对依赖其构建的第三方平台造成了兼容性冲击&#xff0c;其中 Dify 的集成系统首…

作者头像 李华
网站建设 2026/4/30 23:54:38

童声合成挑战:调整参数让IndexTTS 2.0发出稚嫩声音

童声合成挑战&#xff1a;调整参数让IndexTTS 2.0发出稚嫩声音 在短视频和虚拟角色内容爆炸式增长的今天&#xff0c;一个“听起来像真小孩”的AI语音&#xff0c;可能比专业配音演员更快上线、更低成本地完成一整季动画旁白。然而&#xff0c;要让机器模仿出那种清脆、跳跃、带…

作者头像 李华