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

您所在的位置:网站首页 c语言控制字符表示法 C语言重要知识点总结【7】:C语言中的常量、变量、标识符

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

2023-09-11 02:36| 来源: 网络整理| 查看: 265

目录 一、常量1. 整型常量2. 实型常量(浮点型常量)3. 字符常量3.1 普通字符3.2 转义字符(表格)3.3 常见字符与ASCII代码表 4. 字符串常量4.1 字符串所占内存字节数 5. 符号常量 二、变量1. 常变量 三、标识符

大一下学期学习了C语言、暑假在家没事又把C语言复习了一遍。因此,趁热打铁,把所学内容写成笔记,以便以后复习,也希望能够帮助大家学好C语言。 以下内容如有错误,请大家在评论区指正,谢谢支持,共同进步。 go、go、go !!!

一、常量

在C语言中,数据有常量和变量之分: 若在程序执行过程中,其数值不能发生改变的量称为常量 若在程序执行过程中,其数值可以改变的量称为变量 常量:分为 直接常量 和 符号常量 。直接常量:分为整型常量、实型常量、字符常量和字符串常量。(通常将整型常量和实型常量合称为数值常量)

首先大概看一下关于常量的内容:

整型常量:就是常整数,包括正整数、负整数和0。有十进制、八进制、十六进制三种表示形式。需要注意的是,八进制常整数在书写时以数字0作前缀;十六进制以0x作前缀。实型常量 :又称浮点型常量,采用十进制小数形式 和 指数形式表示。字符型常量 :用单引号括起来的单个字符,分为普通字符(‘a’,‘Z’,‘6’,’#’,’?’ )和转义字符(’\n’是换行符、’\t’是水平制表符,横向跳格,8个空格)字符串常量 :用双引号括起来的字符串符号常量:用标示符代表一个常量,使用之前必须定义,具有一改全改的优点。例如: #define PI 3.14 1. 整型常量

整型常量:包括正整数、负整数 和 0

十进制整数:书写形式通常是整数的写法。例如:0、16、88、666、-99 等。八进制整数:书写形式通常在八进制整数的前面加一个数字0(0作前缀)。例如:00、0111、015、021等,它们分别表示十进制整数:0、73、13、17。十六进制整数:书写形式通常是在十六进制整数的前面加0x(0x作前缀)。其中每个数字可以是 0 ~ 9、a ~ f 或 A~F 中的数字或英文字母。 例如:0x0(十进制0)、0x111(十进制273) 、0x15(十进制21)、0x21(十进制33 )、0x5a(十进制90 )、0Xa5(十进制165 )…… 2. 实型常量(浮点型常量)

实型常量:又称浮点型常量,有 十进制小数形式 和 指数形式 2种表示形式。

① 十进制小数形式:

由数字和小数点组成

例如:3.14159、0.0、88.0、0.123、-6.66

② 指数形式:

由于计算机输入或输入是无法表示上角或下角,故规定以字母e或E代表以10为底的指数。

指数形式的实型常量 由十进制小数形式 或 十进制整型常量部分 + 指数部分,即e或E之前必须有数字,且e或E后面必须为整数。 在这里插入图片描述 错误形式: e15 【e前面缺少小数部分】 0.35e 【e后面缺少一个整数】 78e-1.2 【1.2 不是整数】

3. 字符常量 3.1 普通字符

普通字符:用单撇号括起来的一个字符

单引号括起来的字符包括:英文字母大、小写字符各26个、数字字符10个,以及空白符(空格符、制表符、换行符),标点和特殊符号(键盘上的共30个),它们也称为C语言的基本字符集。如’a’,‘Z’,‘6’,’#’,’?’ 等是合法的字符常量,在内存中占一个字节。单引号内如果是一个空格符,也是一个字符常量。字符常量的值,就是它在ASCII编码表中的值是个从0~127之间的整数,因此字符常量可以作为整型数据来进行运算。表达式 ‘Y’+32 的值为 121,字符'Y'对应ASCII码值是89表达式 ‘7’+‘6’ 的值为109,通过查表可以发现'7'和'6'对应的ASCII码值分别是55和54。应该注意’7’和7是不一样的,作为字符常量'7'所代表的整型常量值是55,7对应的是整型常量7。 3.2 转义字符(表格)

转义字符主要用来表示那些用一般字符不便于表示的控制代码,构成字符常量的控制字符必须用转义字符表示,这种“控制字符”在屏幕上是不能显示的,转义字符虽然包含两个或多个字符,但它只代表一个字符。转义字符的意思是将 \后面的字符转换成另外的意义。

转义字符分为一般转义字符、八进制转义字符和十六进制转义字符。

一般转义字符:'\n'是换行符、'\t'是水平制表符(将输出的位置跳到下一个Tab位置,一个Tab位置为8,即横向空8个格),'\?'是一个问号……八进制转义字符:反斜线后的八进制数可以不用 0 开头,由 反斜杠’’ 和随后的 1~3个八进制数字 构成的字符序列。’\60’、’\101’、**’\141’**分别表示字符’0’、‘A’和’a’。因为字符’0’、'A’和’a’的ASCII码的八进制值分别为60、101和141。十六进制转义字符 由反斜杠’’ 和 字母x(字母x是小写,不能用大写X)及随后的 1~2个十六进制数字 构成的字符序列。’\x30’、’\x41’、’\X61’ 分别表示字符’0’、‘A’和’a’。因为字符’0’、'A’和’a’的ASCII码的十六进制值分别为0x30、0x41和0x61。

最后一个小知识点:换行符'\n'对应的十进制数是10,可以用八进制数 '\012'表示。

共13个转义字符含义(字符值)作用1\'单撇号输出单撇号 '2\"双撇号输出双撇号"3\?问号输出问号字符?4\\反斜线输出反斜线字符\5\a警告(alert)产生声音或视觉信号6\b退格(backspace)将光标当前位置后退一个字符7\f换页(form feed)将光标当前位置移动到下一页的开头8\n换行将光标当前位置移动到下一行的开头9\r回车将光标当前位置移动到本行的开头010\t水平制表符将光标当前位置移动到下一个Tab位置111\v垂直制表符将光标当前位置移动到下一个垂直制表对齐点2 -转义字符含义(字符值)作用12\o \oo 或 \ooo 其中o代表一个八进制数字八进制码对应的ASCLL字符与该八进制对应的字符313\xh[h···] 其中h代表一个十六进制数字与十六进制码对应的ASCLL字符与该十六进制对应的字符 3.3 常见字符与ASCII代码表

在这里插入图片描述 在这里插入图片描述

4. 字符串常量

字符串常量是用 双撇号 "" 括起来的多个字符的序列,如:“a”、“abc123”、“China”、“你好”……

只要是“双撇号”括起来的,就算只有一个字符也叫字符串,如"a"。字符常量 'a’与字符串常量"a"是不同的。一个字符在内存中只占一字节,而字符串本质上是多个字符组成的字符数组。C语言规定,在每一个字符串常量的结尾,系统都会自动加一个字符’\0’作为该字符串的“结束标志符”,系统据此判断字符串是否结束。 这里要特别强调一点:’\0’是系统自动加上的,不是人为添加的。’\0’ 是 ASCII 码为 0 的字符,它不会引起任何控制动作,也不是一个可以显示的字符。比如字符串常量"CHINA",表面上看它只有 5 个字符,但实际上它在内存中占6个节,‘C’、‘H’、‘I’、‘N’、‘A’、’\0’ 各占一个字节。如果要输出该字符串,’\0’ 不会输出。也就是说,虽然实际上总共有 6 个字符,’\0’ 也包括在其中,但输出时 ‘\0’ 不会输出。系统从第一个字符 ‘C’ 开始逐个输出字符,直到遇到 ‘\0’,则表示该字符串结束,停止输出。如果“双撇号”中能看见的字符有 n 个,则该字符串在内存中所占的内存空间为 n+1 字节。 4.1 字符串所占内存字节数 双撇号中什么都不写,则只有 ‘\0’ 一个字符,所以只占1字节。"a" 有 1 个可见字符,占 2 字节。"China" 有 5 个可见字符,占 6 字节。"How are you"中,空格也是字符(占一个字节),也算是可见的,所以总共有 11 个可见字符,共占 12 字节。"I love you"共 10 个可见字符,共占 11 字节。"你好",可见4个字节,共占 5 字节。

【注意】第6个"你好"为什么占 5 字节?有 2 个可见字符不是应该占3字节吗?C 语言规定,1个英文字符占 1个字节,而 1个中文字符占 2个字节,就算是中文的标点符号也是占 2个字节。所以两个汉字占 4 字节,加上 ‘\0’ 总共是 5 字节。

5. 符号常量

符号常量:用标示符代表一个常量,使用之前必须定义,具有一改全改的优点。

定义符号常量的一般形式:

#define 标识符 常量

例如:将PI定义为符号常量

#define PI 3.14 要区分符号常量和变量是不一样的,符号常量不占内存,只是一个临时符号,代表一个值,在预编译后这个符号就不存在了,故不能对符号常量赋新值。为与变量名相区别,习惯上符号常量用大写字母表示,如PI(π),PRICE(价格),N(数)等 #include #define IP 3.14 //符号常量:在使用之前必须先定义 //优点:改一处,即改全部 //从此行开始,以后所有的PI都代表3.14 int main() { float r,S,V; //定义3个单精度浮点型变量 r,c,s printf("请输入圆的半径 r="); scanf("%f",&r); //输入圆的半径 S=4*IP*r*r; V=4.0/3*IP*r*r*r; printf("\n圆的表面积 S=%.2f\n",S); printf("圆的体积 V=%.2f\n",V); return 0; }

运行结果………………………………………… 在这里插入图片描述

二、变量

变量代表一个有名字、具有特定属性的一个存储单元。他用来存放数据,也就是存放变量的值。在对程序编译连接时有编译系统给每一个变量名分配一个 存储地址 。

变量名开头必须是字母或下划线,不能是数字。 实际编程中最常用的是以字母开头,而以下划线开头的变量名一般都是系统专用的。变量名绝对不可以是C语言关键字(C语言关键字一般常用的有32个,在谭浩强写的《C程序设计》中有37个关键字),并且变量不能有空格。变量名的长度应当符合“min-length && max-information”原则。大写字母和小写字母是两个不同的字符,sum和SUM不同变量名。一般而言,变量名用小写字母表示,与人们日常习惯一致,以提高可读性。

变量的数据类型:

在这里插入图片描述

1. 常变量

C99允许使用常变量,方法是在定义变量时,前面加一个关键字const。

const int a=3; //定义一个整型变量,指定其值为3, //而且在变量的存在期间其值不能改变。

常变量具有变量的基本属性:有类型、占储存单元,只是不允许改变其值。常变量具有符号常量的优点,使用更方便。

常变量与符号符号常量区别

在编译后符号常量就不存在了,二常变量需要占用存储单元。

#define PI 3.1415926 //定义符号常量 const float pi=3.1415926 //定义常变量 -

注意:有些编译系统还未实现C99的功能,初学者尽量不用,了解即可。但如果当你对C语言更加深入地去学习,常变量其实也是一个比较重要的知识点。

三、标识符

用来对变量、符号常量名、函数、数组、类型、等命名的有效字符序列统称标识符(identifier)。

C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须是字母或下画线。

例如:sum ,average , _total , Class , day ,month , Student_name , lotus_1_2_3 , BASIC , li_ling……不合法标识符:M.D.John ,¥123 , #33 , 3D64 , a>b(不能用标点符号 . ¥ # 等)标识符可以任意长,但一般只有前32位有效

C语言标识符分为以下三类:

关键字(32个): auto、break、case、char、const 、continue、default、do、double、else、enum、extern float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while,关键字是C语言中用来表示特殊含义的标识符,由系统提供。关键字有特定的语法意义,不允许用户重新定义,也不能用作变量名或函数名。预定义标识符: C语言中预先定义了一些标识符,他们有特定的含义,通常用做固定的库函数中的函数名或预编译处理中的专门命令。如scanf、printf、fabs、sqrt、define、include等。C语言允许用户标识符与预定义标识符同名,但这将使这些标识符失去系统规定的原意。为了避免误解,建议用户为标识符取名时尽量不要与系统预先定义的标准标识符(如标准函数)同名。用户标识符:用户标识符是由用户自己定义的标识符,命名时应遵守标识符命名的原则,最好做到见名知义,这样可以提高程序的可读性,一般选用相应的英文单词或拼音字母的形式,如min、max、sum、score(成绩),aver(平均值)、row(行)、colum(列)、total(总数),max_value……

变量的数据类型:

在这里插入图片描述

最后推荐系列文章:

C语言重要知识点总结【4】:C语言的32个关键字和9种控制语句C语言重要知识点总结【5】:C语言34种运算符优先级及结合性C语言重要知识点总结【6】:C语言的9种控制语句(详解)C语言重要知识点总结【8】:C语言中变量的数据类型

以上内容如有错误,请大家在评论区指正,谢谢支持,共同进步。 加油!!! 如果你感觉我写的内容对你有一定的帮助,请给我点一个 【赞】作为您对我的鼓励, 谢谢!!

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3