C语言标识符之关键字,预处理标识符和用户标识符的区别和关系

C语言标识符分类

第一类:关键字

定义

由C语言规定的具有特定意义的字符串,通常也称为保留字。例如 int、char、long、float等。相当于已经被C语言本身特殊使用了的标识符,不可以再定义。在定义标识符的时候不能与关键字同名

内容

C语言有32个关键字

数据类型关键字(12个)
名称作用
char声明字符型变量或函数
double声明双精度变量或函数
enum声明枚举类型
float声明浮点型变量或函数
int声明整型变量或函数
long声明长整型变量或函数
short声明短整型变量或函数
signed声明有符号类型变量或函数
struct声明结构体变量或函数
union声明联合数据类型
unsigned声明无符号类型变量或函数
void声明函数无返回值或无参数,声明无类型指针
控制语句关键字(12个)

循环语句

名称作用
for一种循环语句
do循环语句的循环体
while循环语句的循环条件
break跳出当前循环
continue结束当前循环,开始下一轮循环

条件语句

名称作用
if条件语句
else条件语句否定分支
goto无条件跳转语句

开关语句

名称作用
switch用于开关语句
case开关语句分支
default开关语句中的“其他”分支

返回语句

名称作用
return子程序返回语句
存储类型关键字(4个)
名称作用
auto声明自动变量 一般不使用
extern声明变量是在其他文件正声明(也可以看做是引用变量)
register声明寄存器变量
static声明静态变量

其他关键字(4个)

名称作用
const声明只读变量
sizeof计算数据类型长度
typedef用于给数据类型取别名
volatile说明变量在程序执行中可被隐含的改变

第二类:预定义标识符

定义

预定义标识符是C语言中系统预先定义的标识符,如系统类库名、系统常量名、系统函数名。就是printf和scanf这种函数名之类的;使用的时候尽量避免再一次地重新定义它们,但是如果定义了也不会有错,只是这些预定义标识符在程序中由于就近原则就会失去原来的作用,变成自己定义的那个功能

第三类:用户标识符

定义

用户标识符:用户根据需要自己定义的标识符。一般用来给变量、函数、数组等命名。用户标识符如果与关键字相同,则编译时会出错;如果与预定义标识符相同,编译时不会出错,但预定义标识符的原意失去了,或会导致结果出错,因此预定义标识符一般不用来作为用户标识符。

命名规则

1、有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。

2、有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。

例如,由于student_name和student_number的前8个字符相同,有的系统认为这两个变量,
是一回事而不加区别。在TCV2.0中,变量名(标识符)的有效长度为1~32个字符,缺省值为32。

3、C语言的关键字不能用作变量名

预处理标识符可以作为用户标识符来命名,但一般不这样做,这样会使预定义标识符的失去原意,
有时会导致结果出错。

例题

以下标识符中,不能作为C语言合法的用户定义标识符的是()

A.	sizeof

B. 	include

C. 	define

D. 	malloc

答案:A
解析:

sizeof是C语言关键字,不能用来定义为用户标识符因为
include,define和malloc仅仅是预处理命令,不是c语言关键字。并且都满足以字母或下划线开头的标识符定义
  • 52
    点赞
  • 361
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值