C 语言合法标识符的规则
在 C 语言中,一个合法的标识符(如变量名、函数名、宏名等)必须遵循以下规则:

(图片来源网络,侵删)
-
有效字符:
- 字母:大写英文字母(
A-Z)和小写英文字母(a-z)。 - 数字:
0-9。 - 下划线:
_(Underscore)。
- 字母:大写英文字母(
-
首字符限制:
- 标识符的第一个字符**不能是数字**,它必须是字母或下划线。
-
大小写敏感:
- C 语言是大小写敏感的,这意味着
myVar、MyVar和myvar是三个完全不同的标识符。
- C 语言是大小写敏感的,这意味着
-
不能是关键字:
(图片来源网络,侵删)- 标识符不能使用 C 语言的保留关键字(Reserved Keywords),
int,for,if,while,return等。
- 标识符不能使用 C 语言的保留关键字(Reserved Keywords),
-
不能包含特殊字符:
标识符中不能包含空格、标点符号(如 , , , )或其他任何特殊字符。
示例分析
下面我们通过一些例子来具体判断哪些是合法的,哪些是非法的。
合法的标识符
_myVariable(以下划线开头,后面跟字母)count(以小写字母开头)MAX_SIZE(全大写,常用于宏定义,非常推荐)data_123(字母和数字的组合)a1(字母开头,后面跟数字)_(单个下划线是一个合法的标识符)UserInput(驼峰命名法,推荐用于变量和函数)
非法的标识符
2ndPlace(非法):以数字2开头。my-variable(非法):包含了特殊字符 。total#sum(非法):包含了特殊字符 。int(非法):是 C 语言的保留关键字。my variable(非法):包含了空格。$price(非法):包含了特殊字符 。a@b(非法):包含了特殊字符 。
综合判断题示例
假设有以下选项,请选出所有合法的标识符:

(图片来源网络,侵删)
A. for
B. my_var_2
C. 123go
D. _MAX_VALUE
E. user-name
F. switch
正确答案是 B 和 D。
分析过程:
- A.
for: 非法。for是 C 语言的关键字,不能用作标识符。 - B.
my_var_2: 合法,以字母开头,只包含字母、数字和下划线。 - C.
123go: 非法,以数字123开头。 - D.
_MAX_VALUE: 合法,以下划线开头,只包含字母和下划线,这是宏定义的常用风格。 - E.
user-name: 非法,包含了特殊字符 。 - F.
switch: 非法。switch是 C 语言的关键字。
记住核心的三个要点,你就可以轻松判断任何标识符是否合法:
- 开头:必须是字母或下划线。
- 中间:只能是字母、数字或下划线。
- 整体:不能是关键字,不能有空格或特殊符号。
