在C语言中,一个不正确的标识符通常是违反了以下命名规则:

(图片来源网络,侵删)
- 只能由字母(A-Z, a-z)、数字(0-9)和下划线(_)组成。
- 第一个字符必须是字母或下划线(_),不能是数字。
- 不能是C语言的关键字(如
int,for,if,return等)。 - 区分大小写(
myVar和myvar是两个不同的标识符)。
常见错误示例
以下是一些不正确的C语言标识符的例子,并附有错误原因分析:
以数字开头
- 错误示例:
2sum - 错误原因: 标识符不能以数字开头,编译器会认为这是一个数字常量,而不是一个名字。
包含特殊字符(除了字母、数字和下划线)
- 错误示例:
my-variable,price$,user@name - 错误原因: 标识符中不能包含 , , , , , , 等特殊字符,只有字母、数字和下划线是允许的。
使用C语言的关键字
- 错误示例:
int,for,while,if,else,return - 错误原因: 关键字是C语言语法的一部分,有固定的含义(如
int用于声明整型变量),不能用作自定义的变量名、函数名等。
使用空格
- 错误示例:
my variable - 错误原因: 标识符中不能包含空格,空格是用来分隔不同标识符或关键字的。
正确与错误的对比
为了让你更清晰地理解,这里有一个对比表格:
| 标识符示例 | 是否正确 | 原因 |
|---|---|---|
myVar |
正确 | 由字母和数字组成,且以字母开头。 |
_myVar |
正确 | 以下划线开头是常见的、合法的做法。 |
my_var |
正确 | 使用下划线分隔单词,非常清晰,是推荐的命名风格。 |
MyVar |
正确 | 首字母大写也是合法的。 |
123abc |
错误 | 以数字开头。 |
my-var |
错误 | 包含了非法字符 。 |
int |
错误 | 是C语言的关键字。 |
price$ |
错误 | 包含了非法字符 。 |
a b |
错误 | 包含了空格。 |
如果你遇到一个标识符,可以按照以下步骤来判断它是否正确:
- 看第一个字符:是不是字母或下划线?如果不是,就错了。
- 看中间的字符:是不是只有字母、数字和下划线?如果包含了其他任何符号,就错了。
- 查关键字表:是不是
auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,while之一?如果是,就错了。
最常见的错误就是以数字开头和包含特殊字符。

(图片来源网络,侵删)

(图片来源网络,侵删)
