首页 > 其他分享 >标识符的分类

标识符的分类

时间:2024-05-26 21:29:43浏览次数:18  
标签:定义 scanf 分类 关键字 预定 标识符 常量

标识符(identifier)是标识某个实体的符号,是程序员给变量、常量、函数、语句块等起的名字。

标识符只能由字母、数字和下划线组成,且不能以数字开头。

C语言的标识符可以分为三类。

1.关键字

关键字(Keyword)指编程语言标准中规定好的具有固定含义的词汇,如int、if、else、for等都是关键字。这些关键字不能用作变量名、函数名或任何其他标识符的名称。

2.预定义标识符

预定义标识符(Predefined Identifiers)是由系统预先定义的一些有特定含义的标识符。主要分为:

(1)库函数名:printf、scanf等。

(2)预编译处理命令:在编译之前,由预处理器(Preprocessor)执行的指令,如define、include等。

(3)系统类库名:指库文件的名称,如stdio、stdlib、iostream。

(4)系统常量名:预先定义在头文件中的宏常量,通常为数学常量、物理常量或其他与特定库或框架相关的常量,如NULL(空指针)、M_PI(π)。

(5)预定义宏(也称内置宏):预定义宏是编译器预先定义好的宏,具备特定的功能,不需要用户使用#define定义就可以直接使用。预定义宏通常以“__”(两条下划线)开头的大写字母命名。如__LINE__(当前源代码的行号)、__FILE__(当前源代码的文件名)等。

系统常量和预定义宏的区别在于:前者相当于类对象宏(把宏替换为具体的值),后者相当于类函数宏(把宏替换为一段可带参数的代码)

预定义标识符和关键字的区别在于,用户可以重新定义预定义标识符另作他用,但这将失去预先定义的原意,所以不应随便更改这类标识符。举个例子:

#include<stdio.h>
int main(){
    int scanf=9527;
    printf("%d\n", scanf);
    return 0;
}

这个代码可以正常运行,但此时scanf已经被咱们定义为变量,如果再用它读取用户输入就会报错了。比如:

#include<stdio.h>
int main(){
    int scanf=9527;
    scanf("%d", &scanf); //读取输入出错
    printf("%d\n", scanf);
    return 0;
}

编译时提示错误:

error: called object 'scanf' is not a function or function pointer('scanf'不是函数或函数指针)

关键字则是用户不能更改、重新定义的。

所以可以这样说,对于系统定义好的标识符,除了关键字,都是预定义标识符。

3.用户标识符

指由用户根据需要定义的标识符。一般是给变量、函数、数组或文件等命名。只要不与前两种标识符重名,符合标识符的命名规则,咱们爱起啥名起啥名。比如给变量起名u2b、ndy、yyds。但是也不要太任性,命名时还应注意尽量做到“见名知义”,这样有利于提高程序的可读性和可维护性。

标签:定义,scanf,分类,关键字,预定,标识符,常量
From: https://blog.csdn.net/jjmhx/article/details/139180363

相关文章

  • Java中的变量分类(按照位置分类)
    变量按位置分通过上面类的建立我们又得到了新的概念:成员变量和局部变量成员变量:可以使用基本数据类型,也可以使用引用数据类型.java中的变量在使用时必须初始化,成员变量可以不对其初始化,系统会对其默认初始化为null或0;成员变量可以在成员方法,构造方法,代码块中使用补:成......
  • 快团团团长如何修改团的商品分类信息?免费教程教你怎么做!
    一、功能说明商品分类能够帮助你团购中的商品展示的更清晰,并且还可以调整分类的顺序,将主推品类展示在前面。二、具体操作步骤(一)如何在商品库增加/修改/删除分类?在“个人中心”→“商品库”中找到“分类管理”,在分类管理中可以:A.添加分类:分类最多可以添加200个B.删除分......
  • JavaSE 关键字和标识符
    目录关键字标识符标识符命名规则标识符命名规范字面值关键字具有特殊含义的命名时不可以与关键字重名标识符也就是名字,对类名,变量名称,方法名称,参数名称等修饰标识符命名规则以字母,下划线_或者$开头,其后可以是字母,数字,下划线或$如:Aa$hm5abc69_如:helloHELL......
  • Pandas分类对象——《Python数据分析库Pandas》
    Pandas分类对象——《Python数据分析库Pandas》Pandas分类对象分类对象的创建分类对象的属性和方法分类对象的应用场景示例:使用分类对象进行数据分析总结Pandas分类对象Pandas分类对象(Categorical)是Pandas库中一种用于处理分类数据的数据类型。分类数据......
  • 人脸识别:基于卷积神经网络(CNN)分类思想的人脸识别系统
    ​本文来自公众号“AI大道理”  ——————项目配套视频课程:平台:荔枝微课链接:十方教育项目地址:https://github.com/AIBigTruth/CNN_faces_recognition 之前很多人来询问这个项目怎么做,代码跑不起来,里面的原理不是很懂,现在参与这个视频课程就能无痛做这个项目啦。 ......
  • 基于spring boot的多维分类的知识管理系统的设计与实现
    摘 要随着国内市场经济这几十年来的蓬勃发展,突然遇到了从国外传入国内的互联网技术,互联网产业从开始的群众不信任,到现在的离不开,中间经历了很多挫折。本次开发的多维分类的知识管理系统有管理员和用户两个角色。管理员可以管理用户信息,知识分类,知识信息等,用户可以查看和下载......
  • 5.14.6 TransMed:Transformer推进多模态医学图像分类
    卷积神经网络(CNN)在医学图像分析任务中表现出了非常有竞争力的性能,例如疾病分类、肿瘤分割和病灶检测。CNN在提取图像局部特征方面具有很大的优势。然而,由于卷积运算的局部性,它不能很好地处理长程关系。多模态医学图像具有明确且重要的长程依赖性,有效的多模态融合策略可以极大......
  • 截图工具可以分为不同类型,包括操作系统自带的工具、第三方软件、在线截图工具等。以下
    截图工具可以分为不同类型,包括操作系统自带的工具、第三方软件、在线截图工具等。以下是常见的截图工具分类:操作系统自带工具:操作系统通常会内置基本的截图工具,例如:Windows:SnippingTool、Snip&Sketch、Windows键+PrintScreen(全屏截图)等。macOS:Grab、Preview、Shift......
  • 元器件基础学习笔记——电感的分类及主要参数
    一、电感的分类        电感器是一种电子元件,它能够将电能转化为磁能并储存起来。电感器的分类方法有很多,可以根据用途、形状、结构等不同的标准进行划分。分类依据类型备注电感值固定电感固定线圈可变电感改变磁芯的饱和度用途高频电感绕线型,积层型,薄膜型功率电感绕......
  • 从MASM全局标识符谈模块化开发
      博主学习的第一个编程语言是C语言(跟谭教授学的),当时时就疑惑一个问题,为什么要将源码分成多个文件,每个文件编译成目标文件(obj)文件后,再通过连接程序(link)将多个目标文件连接成单个执行文件。后来通过更深入的开发一些规模稍大一点的软件,及了解计算机的发展历史后,逐渐清晰起来:......