news 2026/5/5 10:11:10

C语言中的类型修饰符const

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言中的类型修饰符const
  • 使用const限定类型声明的对象,可能会被编译器放置在只读内存区域中;如果程序中从未获取过某个const对象的地址,它甚至可能根本不会被存储(直接被优化掉)。
  • 任何试图修改const限定类型对象的行为,都会导致未定义行为。

示例

#include<stdio.h>constinta=1;intmain(){int*p=(int*)&a;*p=2;printf("%d\n",a);return0;}

运行报错:

  • const的语义仅适用于左值表达式。
  • 指定const限定类型对象的左值表达式,以及指定包含至少一个const限定成员的struct / union 类型对象的左值表达式(包括递归包含的聚合体或联合体的成员),都是不可修改的左值。特别是,它们不允许被赋值。

示例,下面的代码试图给const修饰的变量赋值,编译报错:

示例:下面的struct中的成员bconst修饰,试图修改s1时编译报错:

  • 当结构体本身被const修饰时,它的所有成员都会变成 “只读”,无论成员本身是否声明为const

示例

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

url-opener:一个被低估的效率工具,一键批量打开预设网址

1. 项目概述&#xff1a;一个被低估的效率工具如果你和我一样&#xff0c;每天需要在浏览器里打开十几个甚至几十个固定的网址——比如开发时的一整套后台管理、API文档、监控面板、测试环境&#xff1b;或者运营时的一批数据看板、社交媒体后台、内容管理平台——那你一定对重…

作者头像 李华
网站建设 2026/5/5 10:07:33

AMD Ryzen SMU调试工具:硬件工程师的终极实战指南

AMD Ryzen SMU调试工具&#xff1a;硬件工程师的终极实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcod…

作者头像 李华
网站建设 2026/5/5 10:04:20

RexCLI:为AI编码代理注入持久化记忆与多智能体协作能力

1. 项目概述&#xff1a;RexCLI&#xff0c;一个为AI编码代理注入记忆与协作能力的本地优先工作流引擎如果你和我一样&#xff0c;日常重度依赖codex-cli、Claude Code、Gemini CLI这类AI编码工具来辅助开发、调试甚至重构代码&#xff0c;那你一定遇到过这样的困境&#xff1a…

作者头像 李华