C语言重要知识点总结【7】:C语言中的常量、变量、标识符
目录
- 一、常量
- 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个空格)字符串常量
:用双引号括起来的字符串符号常量
:用标示符代表一个常量,使用之前必须定义,具有一改全改的优点。例如: #definePI
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
|
回车 | 将光标当前位置移动到本行的开头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”、“你好”……
- 只要是“
双撇号
”括起来的,就算只有一个字符也叫字符串,如"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<stdio.h>
#define IP 3.14 //符号常量:在使用之前必须先定义//优点:改一处,即改全部
//从此行开始,以后所有的PI都代表3.14
int main()
{float r,S,V; //定义3个单精度浮点型变量 r,c,sprintf("请输入圆的半径 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语言中变量的数据类型
以上内容如有错误,请大家在评论区指正,谢谢支持,共同进步。 加油!!!
如果你感觉我写的内容对你有一定的帮助,请给我点一个 【赞】作为您对我的鼓励, 谢谢!!
C语言重要知识点总结【7】:C语言中的常量、变量、标识符相关推荐
- 江苏省计算机二级c语言复习知识点,计算机二级C语言知识点复习
C语言已先后被移植到大.中.小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序.下面是小编收集的关于计算机二级C语言知识点复习,希望 ...
- 【C语言关键知识点1】C语言的预处理、编译和链接过程
1 引言 再一次回顾C语言的关键基础知识,今天带大家深刻的剖析一下C语言的预处理.编译(汇编)和链接的过程,以加深对C语言及编程本质的理解! 学习C语言首先要理解的就是如何将程序员输入的源代码 ...
- c语言如何定义标识符 常量 变量,标识符、常量和变量
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1[单选题] C语言主要是借助以下哪个功能来实现程序模块化 A.定义函数 B.定义常量和外部变量 C.三种基本结构语句 D.丰富的数据类型 参考答案:A ...
- c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量
变量的作用域 我们知道,变量根据其作用域有全局变量和局部变量之分.全局变量作用域是整个文件,并且可以使用关键字 extern 达到跨文件调用的目的.但是局部变量值作用于它当前所在的块(即该变量所处最内 ...
- c语言可以调用汇编语言吗,C语言与汇编语言混编方式
C语言是目前非常流行的一种编程语言,除具有高级语言使用方便灵活.数据处理能力强.编程简单等优点外:还可实现汇编语言的大部分功能,如可直接对硬件进行操作.生成的目标代码质量较高等,而汇编语言没有高级语言 ...
- c语言获取指针分配的字节数,c语言指针知识点总结(共6篇).docx
c语言指针知识点总结(共6篇) C语言指针教学中的知识点分析与总结 摘要:分析指针的基本概念及指针在数组.函数.字符串.动态存储分配等方面的应用,提出指针教学过程中易混淆概念及注意事项,对初学者深入理 ...
- C语言小知识点练习总结
最近在准备C语言的上级考试,之前对C接触不多,在练习过程中把一些小知识点记录下来. 1.字符串的截取 利用strncpy函数,传入三个参数,分别为目标字符串,起始位置,长度. 例如将日期字符串转化为数 ...
- JavaScript 语言基础知识点图示
JavaScript 语言基础知识点图示: 转载于:https://www.cnblogs.com/mrxia/p/4059252.html
- c语言设计 数组的知识点,C语言程序设计知识点及示例.pdf
C语言程序设计知识点及示例 四川大学锦江学院 C语言程序设计知识点及示例 知识点1:除了复合语句而外,C语言的语句都以分号结束. 示例1:C语言的简单语句 (非复合语句语句)必须以 结束. 参考答案: ...
- 程序设计语言基础-知识点
程序设计语言基础-知识点 程序设计语言就是人类跟计算机沟通的语言 分类 1.高级低级之分 高级 c/c++,java 等 低级 机器语言 汇编等 2.工作方式之分 编译程序:编译成目标程序后再执行.c ...
最新文章
- python一切皆对象的理解_Python中万物皆对象?的理解
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) E. Goods transportation 动态规划
- tomcat使用redis存储共享session
- 怎样评价推荐系统的结果质量?
- Python正则表达式 re.sub()函数:标志位flags与参数个数问题
- linux的安全性能,技术|Linux 系统安全性能检查小记
- 【算法】赫夫曼编码 解码 实际应用 文件的编码 解码
- SSH农产品销售系统设计与实现答辩PPT免费下载
- GNN | 从序列神经网络到GCN、GraphSage、GAT图模型总结
- CSS 动画指南: 原理和实战 (一)
- 2021-2022-1 线性代数知识点总结
- dsp2812软件周期耗时测试,基于DSP2812设计的简易数字频率计
- Axure获取焦点和触发事件
- oracle11g broker,张欣橙Oracle11g配置DGbroker
- Unbuntu ./btest : cannot execute binary file: Exec format error解决方案(CSAPP)
- 强学习器------随机森林
- 在oled屏幕上显示汉字
- 预计招收150人,往年有机试,清华计算机系夏令营来袭
- 敏捷守破离:20%-200%-1200%的改善
- 一二线城市知名 IT 互联网公司名单!虎~
热门文章
- 海蜘蛛被搜狗劫持基本完美的解决办法
- gaxlxy nexus遭遇不断重启
- 分享一个自己利用Python写的淘宝秒杀工具源码
- 2014年的那些碎碎念。
- 快捷键下面的下划线,如何控制其是否主动显示?
- java向各方向移动后输出坐标,数控机床的集合精度包括检验各坐标方向移动的垂直度。...
- 实战 SQL Server 2008 数据库误删除数据的恢复(转)
- c4dR19材质编辑器语言中文,C4D R19小白成长记(入门篇) 零基础学习Cinema 4d R19中文教程...
- 3DsMax—投影效果制作
- 利用批处理命令执行.jar文件