当前位置: 首页 > news >正文

【C语言】 关键字与用户标识符

好,这一块是C 语言入门的“地基”,也是考试和面试经常考的基础点。
我按概念 → 规则 → 分类 → 示例 → 常见错误给你一篇清晰好记的说明。


【C语言】关键字与用户标识符


一、什么是关键字(Keyword)

1️⃣ 定义

关键字是 C 语言中已经被系统“预留”的单词,具有固定语义,不能作为变量名使用。

👉 关键字是语言的一部分,由编译器识别。


2️⃣ 常见 C 语言关键字(C99)

auto break case char const continue default do double else enum extern float for goto if inline int long register restrict return short signed sizeof static struct switch typedef union unsigned void volatile while

📌关键字全部是小写,区分大小写


3️⃣ 关键字特点

  • 有特殊含义
  • 不能重定义
  • 不能作为标识符
  • 编译器直接识别

❌ 错误示例:

intint=5;// 错误:int 是关键字

二、什么是用户标识符(Identifier)

1️⃣ 定义

用户标识符是程序员自己定义的名字,用来标识变量、函数、数组、结构体等。

例如:

intage;floattotal_score;intadd(inta,intb);

2️⃣ 标识符的命名规则(必考)

✅ 合法规则:

  1. 只能由字母、数字、下划线组成
  2. 不能以数字开头
  3. 不能是关键字
  4. 区分大小写

❌ 非法示例:

int2num;// 错:数字开头inttotal-1;// 错:非法字符intfor;// 错:关键字

三、关键字 vs 用户标识符对比

对比项关键字用户标识符
定义者语言程序员
含义固定自定义
是否可修改
使用范围语法结构变量 / 函数等

四、标识符命名规范(强烈建议)

虽然编译器不强制,但工程中非常重要

1️⃣ 变量 / 函数

inttotal_count;floatavg_score;

👉 小写 + 下划线(snake_case)


2️⃣ 常量

#defineMAX_SIZE100

👉 全大写


3️⃣ 结构体

structstudent_info{intid;charname[20];};

五、关键字常见分类(理解用)

1️⃣ 数据类型

intcharfloatdoublevoid

2️⃣ 控制语句

ifelseswitchcaseforwhiledobreakcontinue

3️⃣ 存储类别

autostaticexternregister

4️⃣ 其他

sizeoftypedefstructunionenum

六、常见新手错误(必看)

❌ 1. 用拼音当标识符

intchengji;// 不推荐

❌ 2. 标识符与关键字“撞名”

intInt;// 合法,但极不推荐

❌ 3. 名字太随意

inta,b,c;// 可读性差

七、面试 / 考试常见问法

Q1:关键字和标识符的区别?

关键字是系统保留字,有固定含义;标识符由用户定义,用于命名变量、函数等。


Q2:以下哪些是合法标识符?

_count 2num for sum_1

✔ 合法:_count,sum_1


八、一句话总结(背这个)

关键字是 C 语言保留字,不能作为名字;用户标识符是程序员自定义的名称,需遵循命名规则。


如果你愿意,我可以继续帮你:

  • 🔥 C 语言所有关键字记忆口诀
  • 🔥 标识符命名与工程规范
  • 🔥 考试易混点专项练习
  • 🔥 C 语言基础到进阶完整路线

你是刚学 C,还是准备期末 / 考试

http://www.jsqmd.com/news/333877/

相关文章:

  • python变量详解
  • linux 中sed命令对指定步长行进行处理
  • Anthropic推出Claude Cowork插件功能增强任务自动化能力
  • 99999999999999
  • [STM32L5] STM32L562E-DK硬件和DEMO程序演示
  • 【重磅】正规的腾讯广告排行榜单 - 服务品牌热点
  • 【艾思科蓝推荐】2026 计算机科学与技术/电子与通信/人工智能领域国际学术会议汇总 | 2026年3月学术会议征稿信息速览 | EI/Scopus稳定检索,高录用,适合硕博毕业/职称评审/项目结题
  • plc教程系列篇(二),plc教程之5大编程语言类型介绍
  • # Vue3 音频标注插件 wavesurfer
  • 探索Matlab/Simulink三闭环直流电机调速系统仿真
  • 写给技术管理者的低代码手册系列文章(1)——从软件工程视角理解低代码的价值、边界与演进路径
  • 【Linux指南】Linux粘滞位详解:解决共享目录文件删除安全隐患
  • LangChain学习2 完成一个mysql数据库管理的示例agent
  • 高压直流输电在线监测Matlab仿真模型及GUI界面设置参数设计
  • [STM32L5] 【STM32L562E-DK试用】第4辑:板载蓝牙的体验
  • 2000-2024年 上市公司异质性机构投资者数据+Stata代码
  • 开源免焊接UART短信转发终端:实现不依赖流量的数据传输
  • 9999999999999999
  • 低代码:让钣金工厂的 “钢铁拼图” 跑赢数字化时代
  • 如何设计一个可扩展的短信发送队列模块
  • 现代互联网安全的基石: SSL/TLS技术介绍
  • 从外包菜鸟到高手,XinServer 是我的秘密武器
  • SSM毕设项目推荐-基于Java+MySQL+SSM商铺租赁管理系统设计与实现基于ssm的商铺租赁管理系统的设计与实现【附源码+文档,调试定制服务】
  • [STM32L5] 【STM32L562E-DK试用】第3辑:板子Flash芯片测试(OSPI)
  • 写论文省心了!更贴合本科生的AI论文软件,千笔·专业论文写作工具 VS 灵感风暴AI
  • _fsm和_vm文件
  • 【Linux命令大全】008.磁盘维护之swapon命令(实操篇)
  • AI视角下:非农周财经事件与保证金调整的深度剖析
  • 自贡市英语雅思培训机构推荐 2026权威测评出国雅思辅导机构口碑榜单 - 老周说教育
  • 【Linux命令大全】008.磁盘维护之symlinks命令(实操篇)