C语言重要知识点总结【7】:C语言中的常量、变量、标识符
C语言重要知识点总结【7】:C语言中的常量、变量、标识符
目录
- 一、常量-
- 3.1 普通字符- 3.2 转义字符(表格)- 3.3 常见字符与ASCII代码表- 4.1 字符串所占内存字节数-
整型常量
:就是常整数,包括正整数、负整数和0。有十进制、八进制、十六进制三种表示形式。需要注意的是,八进制常整数在书写时以数字0作前缀;十六进制以0x作前缀。1.实型常量
:又称浮点型常量,采用十进制小数形式 和 指数形式表示。1.字符型常量
:用单引号括起来的单个字符,分为普通字符(‘a’,‘Z’,‘6’,’#’,’?’ )和转义字符(’\n’是换行符、’\t’是水平制表符,横向跳格,8个空格)1.字符串常量
:用双引号括起来的字符串1.符号常量
:用标示符代表一个常量,使用之前必须定义,具有一改全改的优点。例如: #definePI
3.14 ## 1. 整型常量十进制整数
:书写形式通常是整数的写法。例如:0、16、88、666、-99 等。1.八进制整数
:书写形式通常在八进制整数的前面加一个数字0(0作前缀)。例如:00、0111、015、021等,它们分别表示十进制整数:0、73、13、17。1.十六进制整数
:书写形式通常是在十六进制整数的前面加0x(0x作前缀)。其中每个数字可以是 0 ~ 9、a ~ f 或 A~F 中的数字或英文字母。 例如:0x0(十进制0)、0x111(十进制273) 、0x15(十进制21)、0x21(十进制33 )、0x5a(十进制90 )、0Xa5(十进制165 )…… ## 2. 实型常量(浮点型常量)- 单引号括起来的字符包括:
英文字母大、小写字符
各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'
表示。- 只要是“
双撇号
”括起来的,就算只有一个字符也叫字符串,如"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字节。1."a"
有 1 个可见字符,占 2 字节。1."China"
有 5 个可见字符,占 6 字节。1."How are you"
中,空格也是字符(占一个字节),也算是可见的,所以总共有 11 个可见字符,共占 12 字节。1."I love you"
共 10 个可见字符,共占 11 字节。1."你好"
,可见4个字节,共占 5 字节。 【注意】第6个"你好"为什么占 5 字节?有 2 个可见字符不是应该占3字节吗?C 语言规定,1个英文字符占 1个字节,而 1个中文字符占 2个字节,就算是中文的标点符号也是占 2个字节。所以两个汉字占 4 字节,加上 ‘\0’ 总共是 5 字节。
大一下学期学习了C语言、暑假在家没事又把C语言复习了一遍。因此,趁热打铁,把所学内容写成笔记,以便以后复习,也希望能够帮助大家学好C语言。
以下内容如有错误,请大家在评论区指正,谢谢支持,共同进步。 go、go、go !!!一、常量
在C语言中,数据有常量和变量之分: 若在程序执行过程中,其数值可以改变的量称为`变量`
常量:分为 直接常量 和 符号常量 。直接常量:分为整型常量、实型常量、字符常量和字符串常量。(通常将整型常量和实型常量合称为数值常量)首先大概看一下关于常量的内容:
整型常量:包括正整数、负整数 和 0
实型常量:又称浮点型常量,有 十进制小数形式 和 指数形式 2种表示形式。
① 十进制小数形式:
由数字和小数点组成
例如:3.14159、0.0、88.0、0.123、-6.66
② 指数形式:
由于计算机输入或输入是无法表示上角或下角,故规定以字母e或E代表以10为底的指数。
指数形式的实型常量 由
十进制小数形式 或 十进制整型常量部分
+指数部分
,即e或E之前必须有数字,且e或E后面必须为整数。 错误形式: 0.35e 【e后面
缺少一个整数】
78e-1.2 【1.2
不是整数】3. 字符常量
3.1 普通字符
普通字符:用单撇号括起来的一个字符
转义字符主要用来表示那些用一般字符不便于表示的控制代码,构成字符常量的控制字符必须用转义字符表示,这种“控制字符”在屏幕上是不能显示的,转义字符虽然包含两个或多个字符,但它只代表一个字符。转义字符的意思是将
\
后面的字符转换成另外的意义。转义字符分为一般转义字符、八进制转义字符和十六进制转义字符。
共13个 转义字符 含义(字符值) 作用 1 `\'` 单撇号 输出单撇号 `'` 2 `\"` 双撇号 输出双撇号`"` 3 `\?` 问号 输出问号字符`?` 4 `\\` 反斜线 输出反斜线字符`\` 5 `\a` 警告(alert) 产生声音或视觉信号 6 `\b` 退格(backspace) 将光标当前位置后退一个字符 7 `\f` 换页(form feed) 将光标当前位置移动到下一页的开头 8 `\n` 换行 将光标当前位置移动到下一行的开头 9 `\r` 回车 将光标当前位置移动到本行的开头0 10 `\t` 水平制表符 将光标当前位置移动到下一个Tab位置1 11 `\v` 垂直制表符 将光标当前位置移动到下一个垂直制表对齐点2 - 转义字符 含义(字符值) 作用 12 `\o \oo 或 \ooo` 其中`o`代表一个八进制数字 八进制码对应的ASCLL字符 与该八进制对应的字符3 13 `\xh[h···]` 其中`h`代表一个十六进制数字 与十六进制码对应的ASCLL字符 与该十六进制对应的字符 3.3 常见字符与ASCII代码表
4. 字符串常量
字符串常量是用 双撇号
""
括起来的多个字符的序列,如:“a”、“abc123”、“China”、“你好”……5. 符号常量
符号常量:用标示符代表一个常量,使用之前必须定义,具有
一改全改
的优点。定义符号常量的一般形式:
#define 标识符 常量
例如:将
PI
定义为符号常量#define PI 3.14
- 要区分符号常量和变量是不一样的,符号常量不占内存,只是一个临时符号,代表一个值,在预编译后这个符号就不存在了,故不能对符号常量赋新值。- 为与变量名相区别,习惯上符号常量用大写字母表示,如PI(π),PRICE(价格),N(数)等
```
#include<stdio.h>
#define IP 3.14 //符号常量:在使用之前必须先定义
//从此行开始,以后所有的PI都代表3.14 int main() { float r,S,V; //定义3个单精度浮点型变量 r,c,s printf("请输入圆的半径 r="); scanf("%f",&r); //输入圆的半径 S=4IPrr; V=4.0/3IPrr*r; printf("\n圆的表面积 S=%.2f\n",S); printf("圆的体积 V=%.2f\n",V); return 0; }//优点:改一处,即改全部
运行结果…………………………………………<br> <img src="https://img-blog.csdnimg.cn/20200824175315446.png#pic_center" alt="在这里插入图片描述"> # 二、变量 > 变量代表一个`有名字`、具`有特定属性`的一个<mark>存储单元</mark>。他用来存放数据,也就是存放变量的值。在对程序编译连接时有编译系统给每一个变量名分配一个 **存储地址** 。 - **变量名开头必须是字母或下划线,不能是数字。** 实际编程中最常用的是以字母开头,而以下划线开头的变量名一般都是系统专用的。- **变量名绝对不可以是C语言关键字**(C语言关键字一般常用的有32个,在谭浩强写的《C程序设计》中有37个关键字),并且变量不能有空格。- 变量名的长度应当符合“min-length && max-information”原则。- 大写字母和小写字母是两个不同的字符,sum和SUM不同变量名。- 一般而言,变量名用小写字母表示,与人们日常习惯一致,以提高可读性。 变量的数据类型: <img src="https://img-blog.csdnimg.cn/20200824184838160.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjAyMjA4Mw==,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"> ### 1. 常变量 C99允许使用常变量,方法是在定义变量时,前面加一个`关键字const`。
const int a=3; //定义一个整型变量,指定其值为3, //而且在变量的存在期间其值不能改变。
常变量具有变量的基本属性:有类型、占储存单元,只是不允许改变其值。常变量具有符号常量的优点,使用更方便。 <mark>常变量与符号符号常量区别</mark> 在编译后符号常量就不存在了,二常变量需要占用存储单元。
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语言中用来表示特殊含义的标识符,由系统提供。关键字有特定的语法意义,不允许用户重新定义,也不能用作变量名或函数名。1.预定义标识符
: C语言中预先定义了一些标识符,他们有特定的含义,通常用做固定的库函数中的函数名或预编译处理中的专门命令。如scanf、printf、fabs、sqrt、define、include等。C语言允许用户标识符与预定义标识符同名,但这将使这些标识符失去系统规定的原意。为了避免误解,建议用户为标识符取名时尽量不要与系统预先定义的标准标识符(如标准函数)同名。1.用户标识符
:用户标识符是由用户自己定义的标识符,命名时应遵守标识符命名的原则,最好做到见名知义,这样可以提高程序的可读性,一般选用相应的英文单词或拼音字母的形式,如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语言中变量的数据类型
以上内容如有错误,请大家在评论区指正,谢谢支持,共同进步。 加油!!!
如果你感觉我写的内容对你有一定的帮助,请给我点一个 【赞】作为您对我的鼓励, 谢谢!!