C语言标识符有三类:1、关键字,是由C语言规定的具有特定意义的字符串,通常也称为保留字;2、预定义标识符,是系统预先定义的标识符,如函数库中的函数名、宏定义和类型别名;3、用户定义标识符,是用户根据需要自己定义的标识符,一般用来给变量、函数、数组等命名。用户标识符如果与关键字相同,则编译时会出错;如果与预定义标识符相同,编译时不会出错,但预定义标识符的原意失去了。
php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用
本教程操作环境:windows7系统、c99版本、Dell G3电脑。
在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。
C语言标识符的类型
C语言标识符有关键字、用户标识符、预定义标识符三类。C语言规定,标识符只能由字母、数字和下划线组成,并且第一个字符必须是字母或下划线,不能是数字。
1、关键字(Keywords)
关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字,例如 int、char、long、float、unsigned 等。我们定义的标识符不能与关键字相同,否则会出现错误。
你也可以将关键字理解为具有特殊含义的标识符,它们已经被系统使用,我们不能再使用了。
标准C语言中一共规定了32个关键字:
关键字 | 说明 |
---|---|
auto | 声明自动变量 |
short | 声明短整型变量或函数 |
int | 声明整型变量或函数 |
long | 声明长整型变量或函数 |
float | 声明浮点型变量或函数 |
double | 声明双精度变量或函数 |
char | 声明字符型变量或函数 |
struct | 声明结构体变量或函数 |
union | 声明共用数据类型 |
enum | 声明枚举类型 |
typedef | 用以给数据类型取别名 |
const | 声明只读变量 |
unsigned | 声明无符号类型变量或函数 |
signed | 声明有符号类型变量或函数 |
extern | 声明变量是在其他文件正声明 |
register | 声明寄存器变量 |
static | 声明静态变量 |
volatile | 说明变量在程序执行中可被隐含地改变 |
void | 声明函数无返回值或无参数,声明无类型指针 |
if | 条件语句 |
else | 条件语句否定分支(与 if 连用) |
switch | 用于开关语句 |
case | 开关语句分支 |
for | 一种循环语句 |
do | 循环语句的循环体 |
while | 循环语句的循环条件 |
goto | 无条件跳转语句 |
continue | 结束当前循环,开始下一轮循环 |
break | 跳出当前循环 |
default | 开关语句中的“其他”分支 |
sizeof | 计算数据类型长度 |
return | 子程序返回语句(可以带参数,也可不带参数)循环条件 |
2、预定义标识符
C语言中系统预先定义的标识符,如函数库中的函数名、宏定义和类型别名(typedef)。
预定义标识符具有见字明义的特点,如函数“格式输出”(英语全称加缩写:printf)、“格式输入”(英语全称加缩写:scanf)、sin、isalnum等等。
预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原意,使用不当还会使程序出错。
注:C语言函数库中的函数名可以成为用户定义的变量名!!!
3、用户定义标识符
用户根据需要自己定义的标识符。一般用来给变量、函数、数组等命名。用户标识符如果与关键字相同,则编译时会出错;如果与预定义标识符相同,编译时不会出错,但预定义标识符的原意失去了,或会导致结果出错,因此预定义标识符一般不用来作为用户标识符。
C语言规定,用户定义标识符可以是字母、数字、下划线(A~Z, a~z, 0~9, _)组成的字符串,并且第一个字符必须是字母或下划线。
(1)标识符只能以英文大小写字母、和下划线(_)开头,而不能用其他任何字符或数字开头。
例如以下就是错误的例子:
int %a;//错误,标识符不能以符号开头 int 8C[8];//错误,不能以数字开头
(2)标识符中只能包含英文大小写字母、下划线和阿拉伯数字,但是不能以阿拉伯数字开头。
int a8;//正确 int _adf589S_5;//正确
(3)标识符区分大小写
在C语言中,大写字母和小写字母被认为是不同的字符,所以,ABC与abc表述的标识符是不一样的(Acd和acd、caDd和cadd、_8Fc9和_8fc9都是不相同的标识符)。
(4)标识符不能是关键字。
int float;//错误,float是关键字。 int Float;//正确
(5)ANSI标准规定,标识符可以为任意长度,但外部名必须至少能由前6个字符唯一地区分,并且不区分大小写。这是因为某些编译程序(如IBM PC的MS C)仅能识别前6个字符。
除了这些硬性规则外,标识符的命名最好具有具体的意义,以便于观察、阅读和维护。
//定义某长方体的长度、宽度和高度 int a;//高度 int b;//宽度 int c;//高度
可以改成如下定义:
int c_Long; int c_Width; int c_Height;