这篇文章主要对C语言的标识符、关键字、常量、变量的一些细致知识点进行详细的讲解。

比如:1、标识符的命名规范,也就是常量、变量、函数名的命名规则进行规范的讲解。2、C语言的关键字列表。3、常量的定义及其分类。4、对全局变量和局部变量的细节知识点进行细致讲解及为什么要对变量进行初始化、如果没有初始化变量会如何等等进行详解。

1、标识符和关键字

1.1、标识符

在C语言中,常量、变量、函数名称等都是标识符。我们可以将标识符看做一个代号,就像日常生活中物品的名称一样,便于我们对标识符的理解。

标识符的名称可以由用户决定,但也不是想怎么样命名就怎么样命名,也需要遵循以下一些规则:

  (1)标识符只能由英文字母(A~Z,a~z)、数字(0~9)和下划线( _ )组成的字符串,并且其第一个字符必须是字母或下划线。如:

int MAX_LENGTH;    /*由字母和下划线组成*/

  (2)不能使用C语言中保留的关键字。对于那些是关键字,下面的关键字进行介绍的生活会列出来的。

(3)C语言对大小写是敏感的,程序中不要出现仅靠大小写区分的标识符。如:

int x,X;     /*变量 x 与 X 容易混淆;提醒一点,一般我们定义一个变量的时候应该养成一个好的习惯,对变量进行初始化,我这里为了直观一点,我就没有对变量进行初始化了。*/

  (4)标识符应直观且可以拼读,让别人看了就明白其中的用途。标识符最好采取英文单词或其组合,也不要太复杂,且用词要准确,便于记忆和阅读。切记使用汉语拼音来命名。

  (5)标识符的长度应当符合“ min_length && max_information(最短的长度表达最多的信息)”原则。

(6)尽量避免名字中出现数字编号,如temp1、temp2等,除非逻辑上需要编号。这是为了防止我们写程序的时候不肯为命名动脑筋而导致产生无意义的名字。

1.2、关键字

关键字是C程序中的保留字,通常已有各自的用途(如函数名),不能用来做标识符。例如“ int、float、double;”就是错误的,会导致程序编译。因为 int、float、double等是关键字,不能用做变量名。

下表我列出C语言中的所有关键字。

auto enum restrict unsigned
break extern return void
case float short volatile
char for signed while
const goto sizeof Bool
continue if static Complex
default inline struct Imaginary
do int switch
double long typedef
else register union

2、常量和变量

2.1、常量

什么是常量呢?在程序中,有些数据是不需要改变的,也是不能改变的我们把这些不能改变的固定值称之为常量。由于常量的知识比较简单,下面我会介绍一些常量的分类和例子。

  (1)数值常量

#include<stdio.h>int main()
{printf("123");return 0;
}

运行程序,即可在命令中输出各个数值常量。

  (2)字符常量

#include<stdio.h>int main()
{printf("A");return 0;
}

运行程序,即可在命令中输出各个字符常量。

注意:在C语言中,6和 ' 6 '的含义是不一样的,一个数值,可运算;一个是字符,一个符号而已。同样,' a ' 和 'A' 也是不一样的,字符区分大小写。

  (3)字符串常量

在hello的程序中,输出的 "hello"就是字符串常量,用双引号括起来的形式显示,其值就是双引号里面的字符串。通常把""称之为空串,即一个不包含任何字符的字符串;而" "则称之为空格串,是包含一个空格字符的字符串。二者不能等同。

说到这里顺便来说一说 ""和''(双引号和单引号)的区别:

如:比较"a"和'a'的不同。

1、书写形式不同:字符串常量用双引号,字符常量用单引号。

2、存储空间不同:在内存中,字符常量只占用一个存储空间,而字符串存储时必须有占用一个存储空间的结束标记'\0',所以 ' a ' 占用一个,而 " a " 占用两个。

3、二者的操作功能也不相同。例如,可对字符常量进行加减运算,字符串常量则不能。

  (4)符号常量

当某个常量引用起来比较复杂而又不经常要被用到时,可以将该常量定义为符号常量,也就是分配一个符号给这个常量,在以后的引用中,这个字符就代表了实际的常量。这种用一个指定的名字代表一个常量称之为符号常量,即带名字的常量。定义的格式如下:

#define <符号常量名> <常量>

<符号常量名> 通常使用大写字母表示。<常量>可以是数值常量,也可以是字符常量。一般情况下,符号常量定义命令要放在主函数main()之前。

2.1、变量

什么是变量呢?变量用于存储程序中可以改变的数据;变量可分为局部变量和全局变量。好了,下面看一段代码,来初步认识局部变量和全局变量。

#include<stdio.h>int temp=2022;    /*全部变量*/int main()
{int temp=2023;    /*局部变量*/printf("%d",temp);return 0;
}

最后输出的结果为 2023,为什么呢?我们要记住的一点就是 当局部变量和全局变量同名时,局部变量优先使用。

(1)变量的作用域和生命周期

1、作用域:作用域(scope)是程序设计概念,通常来说,一段代码中用到的名字并不总是有效或可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。

(1)局部变量的作用域是变量所在的局部范围。

(2)全局变量的作用域是整个工程。

2、生命周期:变量的生命周期指的是变量的创建到变量的销毁的一个时间段。

(1)局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

(2)全局变量的生命周期是:整个程序的生命周期。

(2)变量的四个基本属性

1、变量名:一个符合规则的标识符;

2、变量类型:C语言中的数据类型或者是自定义的数据类型;

3、变量位置:数据的存储空间位置。

4、变量值:数据存储空间内存放的值。

程序编译时,会给每个变量分配存储空间和位置,程序读取数据的过程,其实就是根据变量名查找内存中相应的存储空间,从其内读取值的过程。

(3)为什么要对变量的进行初始化

  为什么要初始化变量呢?变量的定义是让内存给变量分配内存空间,在分配好内存空间,程序没有运行前,变量会分配一个不可知的混乱值,如果程序中没有对其值进行赋值使用的话,势必会有引起不可预估的结果。所以,使用变量前务必要对其初始化。这样来说吧,当我们创建变量后,会向内存中申请一处空间来存储这个变量,但是这个变量没有初始化时,这块空间内存存储值不可确定(随机值)。在操作系统中,这块内存可能会残留以前程序的遗留数据(垃圾数据)。操作系统释放内存时,只会对分配的内存状态进行改变,内部遗留的数据不会改变。

C语言-----标识符、关键字、常量、变量相关推荐

  1. c语言常量类型转换,c语言基础教程常量变量和类型转换,免费版.doc

    c语言基础教程常量变量和类型转换,免费版 第二章??????常量变量和类型转换2.1.1数字常量??? 数字常量包括整型常量和浮点型常量,浮点型常量又称实数.????1.整型常量???? HYPERL ...

  2. Python快速编程入门#学习笔记03# |第二章 :Python基础(代码格式、标识符关键字、变量和数据类型、数字类型以及运算符)

    全文目录 ==先导知识== 学习目标: 2.1 代码格式 2.1.1 注释 2.1.2 缩进 2.1.3 语句换行 2.2 标识符和关键字 2.2.1 标识符 2.2.2 关键字 2.3 变量和数据类 ...

  3. C语言static关键字修饰变量及函数时的用法和原理

    目录 一.static关键字修饰局部变量 二.static关键字修饰全局变量 三.static关键字修饰函数 一.static关键字修饰局部变量 在内存中,往往将其分为三个区块,栈区,堆区,静态区.C ...

  4. 浅谈C语言static关键字 静态变量 函数

    目录 static对变量修饰 局部变量 全局变量 函数 static对变量修饰 局部变量 普通局部变量存储于进程栈空间,使用完毕会立即释放. 静态局部变量存储于进程的全局数据区,即使函数返回,它的值也 ...

  5. C002--c语言中的标识符,关键字及变量常量的声明和使用

    因为我第一个学习的计算机语言是java,因此我在学习一门新的语言时,或多或少会用学习过的语言与新学习的语言进行对比,然后找到它们之间的不同,如果没有学习过其他语言,第一次接触的计算机语言就是c语言的话 ...

  6. Go语言基础之1--标识符、关键字、变量和常量、数据类型、Go的基本程序结构、Golang的特性...

    一.前言 当我们项目较为简单时,我们在src目录下新建一个该项目目录,里面存放源码文件即可,见下图: 当我们一个项目较为复杂时,我们可以在src目录下新建一个该项目目录,在针对该项目不同模块创建不同目 ...

  7. Java基础笔记(2) 程序入口 关键字 标识符 常量 变量

    提醒:关于那些和我一样新鸟来看资料的,能看懂多少看多少,看不懂的就是不重要,重要的你想我自己学习肯定要标注的,这些信息明白每个知识点实际作用就好了,其他的比如等会讲的常量内存,常量池这些都是我找的资料 ...

  8. C语言重要知识点总结【7】:C语言中的常量、变量、标识符

    目录 一.常量 1. 整型常量 2. 实型常量(浮点型常量) 3. 字符常量 3.1 普通字符 3.2 转义字符(表格) 3.3 常见字符与ASCII代码表 4. 字符串常量 4.1 字符串所占内存字 ...

  9. c程序语言的常量变量和标识符,浅谈C语言中的常量与变量.pdf

    课程教育研究 CourseEducationResearch 2014年4月 上旬刊 教学.信息 浅谈C语言中的常量与变量 刘 星 (青 岛工学院商学院 山东 青岛 266300) [摘要]在任何一种 ...

最新文章

  1. oracle 12C(12.2.0.1)安装-plm系统(一)
  2. 尚硅谷spring和spring boot笔记_手机标准内存达12G,比笔记本电脑还高!可为何系统总能占一半?...
  3. 转 linux常用查看硬件设备信息命令
  4. 命令行编译xcodebuild
  5. ABP源码分析四十:ZERO的Application和Tenant
  6. 嵌入式软件设计第九次
  7. 七阶拉丁方阵_C语言实例 拉丁方阵
  8. 驱动兼容_「图」英特尔DCH驱动新版发布:重点修复Windows 10兼容性问题
  9. JavaWeb项目实战
  10. lesson 038 —— re 模块
  11. pytorch(11)-- crnn 车牌端到端识别
  12. linux环境模拟器,在Linux环境下玩PlayStation模拟器
  13. element-ui下载到本地方法(python 或java)
  14. Android 11 自动亮度调试流程
  15. 数据库实验系列之3存储过程和触发器实验(存储过程和触发器)
  16. 软件设计工程——设计流程
  17. 基于RFID的资产智能盘点及仓储管理云平台
  18. 3.21 华丽丽的颜色渐变工具 [原创Ps教程]
  19. 黑白液晶COG与COB的区别
  20. Android如何设置渐变色背景 渐变shape

热门文章

  1. 爱之祭@楚风[2010-3-6 06:42]
  2. mysql md5 sha1_SQL Server 数据库中的 MD5 和 SHA1
  3. C语言结构体初始化的几种方法
  4. airflow和MySQL_Airflow知识总结
  5. 多功能超级计算机,DGX Station — 个人 AI 超级计算机
  6. 什么是容器(docker)
  7. WAIC 2022 | 洞见科技CTO何浩:隐私计算统一底座赋能金融数字化转型
  8. java需要有哪些特点_java特点有哪些
  9. 第六天:结构型模式--修饰器模式
  10. 关注你要的结果,而不要在意别人的态度【转载】