首页 > 你问我答 >

问 c 语言标识符有哪三类 分类规则详解

2026-11-05 08:41:53
最佳答案

答

c 语言标识符有哪三类,教材标准分类是关键字 预定义标识符 用户自定义标识符,这是 c 语言考试最经典考点,标识符本质就是程序里面用来命名的字符序列,作用是给变量 函数 数组等对象起名字,三类标识符权限和用途不一样,关键字是系统保留字,已经被 c 语言本身占用,不能拿来给变量命名,预定义标识符是标准库里面已经使用的名字,比如 printf scanf,它不是强制保留,理论上可以重新定义,但是强烈不建议,会覆盖原有库函数,用户自定义标识符就是程序员自己起的名字,比如变量名 sum 函数名 add,是日常写代码使用最多的一类,同时标识符还有书写硬性规则,只能由字母 数字 下划线组成,第一个字符不能是数字,区分大小写,不能包含空格特殊符号,很多考题还会把这个分类和命名规则结合出题,判断一个名称属于哪一类,是否合法。之所以要区分这三类,是为了避免命名冲突,写代码的时候不能误用关键字,也尽量不要抢占预定义库函数名称,防止程序异常。实际做题第一步先看名称是不是关键字,如果是就属于第一类,第二步判断是不是标准库函数或者宏这类预定义标识符,第三步剩下程序员自己命名的就是用户自定义标识符,第四步检查命名是否符合标识符语法规则,判断是否合法,最后记忆常见关键字和预定义标识符,应对选择题判断题。

一 三类标识符详细说明

第一类 关键字

系统预先保留的单词,c 语言语法本身使用,有固定含义

举例 int char if while switch return for void

特点 全部小写,不能用作变量名函数名,编译器识别之后有特殊语法作用

第二类 预定义标识符

标准库预先定义好的标识符,主要是库函数名 宏名

举例 printf scanf main strlen malloc

特点 不属于严格关键字,语法上允许重新定义,但是会覆盖原有库功能,实际开发禁止这么做

第三类 用户自定义标识符

程序员根据业务需求自己命名,用来命名变量 函数 数组 结构体等

举例 num score max add

特点 可以自由命名,但是必须遵守标识符命名规则,不能和关键字重名

二 标识符命名通用规则

1 组成字符 英文字母 数字 下划线

2 首字符 必须是字母或者下划线,不能以数字开头

3 大小写敏感 Sum 和 sum 是两个不同标识符

4 不能包含空格 减号 中文 特殊符号

5 长度 不同编译器有最大长度限制,一般前若干位有效,命名不要过长

三 三类标识符对比表

分类典型例子是否可以自定义复用备注
关键字int if while不可以系统强制保留
预定义标识符printf scanf语法允许,不推荐标准库名称
用户自定义标识符num add score可以自由命名程序员自定义

四 高频考点易错点

1 main 属于预定义标识符,不是关键字,很多考题容易混淆

2 预定义标识符和关键字不一样,关键字绝对不能占用,预定义标识符只是不建议占用

3 数字开头比如 123num,属于非法标识符,不属于三类里面任何合法命名

4 标识符区分大小写,Int 虽然不是关键字,但是属于合法自定义标识符

【常见问题】

问题 1 c 语言标识符有哪三类里面 main 是关键字吗

回答 1 c 语言标识符有哪三类考点里面 main 不是关键字,main 属于预定义标识符,c 语言标识符有哪三类考题经常在这里挖坑,不要把 main 当成关键字。

问题 2 c 语言标识符有哪三类里面预定义标识符能不能当变量名

回答 1 c 语言标识符有哪三类里面预定义标识符语法层面可以当做变量名,但是 c 语言标识符有哪三类考点要求记住,这样会覆盖 printf 这类库函数,实际编程不推荐。

问题 3 c 语言标识符有哪三类里面关键字可以自定义吗

回答 1 c 语言标识符有哪三类里面关键字是系统保留,绝对不能作为用户自定义标识符,c 语言标识符有哪三类考试如果拿 int 当变量名,直接判定非法。

【免责申明】

本内容 c 语言标识符有哪三类讲解仅用于考试和编程学习参考,不同教材表述基本一致,正式编码请遵循 ANSI C 标准,不覆盖标准库预定义名称。