C 语言合法标识符,就是用来给变量 函数 数组 结构体 宏 自定义类型起名字的字符序列,是选择题必考基础考点,核心规则一共三条,第一首字符必须是字母或者下划线,第二后面的字符可以是字母 下划线 数字,第三不能和 C 语言关键字重名,同时标识符区分大小写,也就是 Sum 和 sum 属于两个不同标识符。考试出题经常混合数字开头 带特殊符号 使用关键字 中文命名这类错误选项,让考生判断哪个是合法标识符,很多同学容易忽略区分大小写,还有下划线开头是允许的,数字不能放在最前面,像 int if for while 这些关键字是系统保留,绝对不能拿来当标识符,理解这套命名规则之后,不管是期末试卷还是计算机二级,这一类判断题都可以快速选出答案。
三条核心命名规则
1 首字符:必须是英文字母大小写,或者下划线_,不可以是数字
2 后续字符:首字符之后,可以继续使用字母 下划线 阿拉伯数字,不能出现空格 加号 减号 星号 小数点 中文等其他符号
3 禁止项:不能使用 C 语言关键字,关键字是系统预留,比如 int char if return sizeof 等,不能作为标识符
补充要点
标识符严格区分大小写,A 和 a 是不同标识符
标准 C 没有强制限制标识符总长度,但是编译器一般会识别前若干位,太长的名字不同编译器有可能截断,考试一般不考察这个点
标识符可以以下划线开头,但是双下划线开头的名字属于编译器保留,正式开发尽量避免,做题判断的时候依然算合法
合法与非法示例对照表
| 写法 | 是否合法 | 原因 |
|---|---|---|
| sum | 合法 | 字母开头,全部字母 |
| _num | 合法 | 下划线开头 |
| data123 | 合法 | 字母开头,后面带数字 |
| 123abc | 非法 | 数字作为首字符 |
| a+b | 非法 | 包含加号特殊符号 |
| int | 非法 | 属于 C 语言关键字 |
| if1 | 合法 | 不是关键字,是 if 后面加数字 |
| a b | 非法 | 中间有空格 |
常见易混考点
if1 是合法标识符,很多同学误以为带 if 就是关键字,关键字必须是完整单词 if,if1 只是普通标识符,这个是经典挖坑题。
下划线开头合法,比如_count,考试经常把它当成错误选项迷惑考生。
大小写区分,INT 并不是关键字,关键字是小写 int,所以 INT 可以作为标识符,这个也是高频陷阱。
拓展补充
C 语言里面标识符分为三类,关键字 预定义标识符 用户自定义标识符,预定义标识符比如 printf scanf main,这类不是关键字,语法上可以重新定义,但是不推荐,考试有时候会区分,用户自定义标识符就是我们自己命名,判断标准还是前面三条规则。
【常见问题】
问题 1 C 语言合法标识符首字符可以是数字吗
回答 1 C 语言合法标识符首字符不可以是数字,首字符只能是字母或者下划线,数字只能放在首字符之后,这是 C 语言合法标识符最常考的规则。
问题 2 C 语言合法标识符可以使用关键字吗
回答 1 C 语言合法标识符不能使用关键字,int char if 这类系统保留关键字不能作为标识符,但是类似 if1 这种不是完整关键字,属于 C 语言合法标识符。
问题 3 C 语言合法标识符区分大小写吗
回答 1 C 语言合法标识符严格区分大小写,int 是关键字,但是 INT 不是关键字,可以作为 C 语言合法标识符,这个是选择题高频陷阱。
问题 4 C 语言合法标识符里面可以出现中文吗
回答 1 标准 C 语言里面 C 语言合法标识符不支持中文,中文属于非法字符,考试题目出现中文命名一般判定为非法标识符。
【免责申明】
本文内容仅作为 C 语言合法标识符备考学习参考,不同编译器扩展特性可能存在差异,考试答题以教材标准 C 规则为准,学习使用产生的相关问题由使用者自行承担。


