




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章存储信息:变量和常量
本章要点
声明和初始化变量
C语言中的两种数值常量1精选2021版课件
主要内容3.0引言3.1计算机内存3.2使用变量存储信息3.3数值变量的类型3.4常量3.5总结2精选2021版课件3.0引言计算机程序通常使用不同类型的数据,如数字、字符数据类型不同,存储方式不同存储数值的方式:变量和常量变量:代表数据存储位置,其值在程序执行期间可能发生变化常量:其值固定,不能修改3精选2021版课件3.1计算机内存数据的存储空间-------RAM
计算机运行时,使用随机存储器(RAM)存储信息。RAM通常位于计算机的内部,必要时将被擦除,并被替换为新的信息。RAM可以存储哪些数据呢?若程序的功能是维护地址列表,监视股票行情,记录家庭预算,跟踪猪肉价格,那么在程序运行期间,如姓名,股价,家庭开销,猪肉价格等信息将存储在RAM中4精选2021版课件3.1计算机内存RAM的特点计算机开启时,内存中的信息可用,一旦关闭计算机,内存中的信息将丢失。目前,计算机中的内存是以内存条的形式插在主板上的RAM量通常以MB、GB为单位,如512MB,2GB,4GB,8GB等1GB=1024MB1MB=1024KB1KB=1024字节5精选2021版课件3.1计算机内存字节(Byte)是计算机数据存储空间的基本单位RAM逐字节排列,每个字节的内存都对应一个唯一的地址,内存的地址是依次指定的,最小为0,最大取决于系统内存容量。程序运行时,地址由C编译器自动处理数据所需字节数字母x1数字5002数字241.1054短语SamsteachyourselfC22表3.1存储数据所需内存6精选2021版课件3.2使用变量存储信息变量名实际上是一个以一个名字代表一个内存地址,在对程序编译连接时由编译系统分配。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。变量代表内存中具有特定属性的一个存储单元,它用来存放数据,即变量的值,在程序运行期间可变。7精选2021版课件变量命名的规则:
C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。3.2.1变量名可以是(
)不可以是(
)由字母、数字、下划线组成C语言关键字第一个字符为字母或下划线(不推荐)第一个字符为数字8精选2021版课件例:Percent,y2x5_fg7h,annual_profit,
lotus_1_2_3,_1990_taxM.D.John,¥123,4sale,a>b
savings#account,intC语言区分大小写:percent,
PERCENT,代表不同的变量Percent
3.2.1变量名9精选2021版课件注意:虽然是不成文的规定,但通常变量名用小写字母,常量用大写字母C编译器要求:变量名最多有31个字符在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词(或其缩写)作标识符,例如interest_rate,InterestRate3.2.1变量名应该(
)不应该(
)使用描述性的变量名尽量不使用下划线做首字符坚持使用一种命名变量的规则变量尽量不全部用大写字母10精选2021版课件3.3数值变量的类型数据类型指针类型*空类型(无值类型)void基本类型整型
int字符型char实型(浮点型)单精度实型
float双精度实型
double构造类型数组类型枚举类型enum结构类型struct共用体类型unionC语言变量的类型:11精选2021版课件分为两大类:整型变量:
---------存储不带小数的数值(整数)浮点型变量:---------存储带小数的数值(实数)注意:不同数值所需要的内存空间不同,对它们执行的数学运算也不同。存储小型整数(如1,199和-8)所需内存较少,对其运算速度快;存储大型整数和实数所需内存较多,执行数学运算所需时间长3.3.1数值变量的类型有符号整型无符号整型12精选2021版课件表3.2数值数据类型变量类型关键字所需内存(字节)取值范围字符char1-128~127短整型short2-32768~32767整型int4-231~231-1(2147483647)长整型long4-231~231-1特长整型longlong8-263~263-1无符号字符unsignedchar10~255无符号短整型unsignedshort20~65535无符号整型unsignedint40~(232-1)无符号长整型unsignedlong40~(232-1)无符号特长整型unsignedlonglong80~(264-1)单精度浮点数float41.2E-38
~3.4E38双精度浮点数double82.2E-308
~1.8E30813精选2021版课件注意:表3.2中的浮点型数据只是给定了该类数据能够存储的变量的最大值和最小值的大概范围,我们无法给出其精确范围单精度浮点型数据的有效数字为7位双精度浮点型数据的有效数字为19位例如1/3的值为0.3333333……,用单精度浮点型变量存储它时只存储了7个3的精度。在32位PC上,short与int型数据在内存中占据的长度相同,则它的表数范围与int型相同。因此一个int型的常量同时也是一个shortint型常量,可以赋给int型或shortint型变量。3.3.1数值变量的类型14精选2021版课件注意(续):将整型变量声明为有符号时,不需要使用特殊的关键字,默认情况下,整型变量为有符号的。但是,也可以在前面加上关键字signed表3.2列出的关键字用于声明变量数据类型的大小随计算机平台而不同,但是以下几点对任何计算机都适用:char的长度为一个字节short长度不超过int,int长度不超过longunsigned长度==intfloat长度不超过double3.3.1数值变量的类型15精选2021版课件程序3.1计算C语言变量占用的计算机内存空间16精选2021版课件变量必须先声明,后使用,变量声明将变量的名称和类型告诉编译器。声明还可以将变量初始化为特定的值如果使用一个未经声明的变量,那么编译时会生成错误消息格式:typenamevarname;类型变量名;类型必须为表3.2列出的关键字之一,varname是变量名称,遵循变量名命名规则可以在同一行中声明多个同一类型的变量,只需将变量名用逗号隔开,例如:intcount,number,start;floatpercent,total;3.3.2变量声明17精选2021版课件功能:给已有的数据类型制定一个新的名称,也即创建一个同义词例子:typedefintinteger;将integer作为int的同义词,然后就可以使用integer定义int变量。如integercount;==intcount;注意:typedef并不创建新的数据类型,而是能够让我们将不同的名称用于一个预定义的数据类型,常用于聚集数据类型,聚集数据类型是由多种数据类型组合而成的。3.3.3Typedef关键字18精选2021版课件声明变量使计算机为变量留出存储空间;但是,存储在该空间的值,也即变量的值并没有指定,它可能为0,也可能是任意一个随机值使用变量之前一定要将其初始化为一个确定的值初始化的方式:(1)声明变量后,使用赋值语句初始化变量
如:intcount;count=0;(2)声明时对变量初始化,只需在变量后加等号和初始值
如intcount=0;doublepercent
=0.01,taxrate=28.5;3.3.4初始化变量19精选2021版课件注意:不要将变量初始化为允许范围之外的值,例如:shortweight=100000;unsignedintvalue=-2500
C编译器不会发现这种错误,因此编译连接不生成错误消息,但是将会出现与期望不同的结果3.3.4初始化变量应该(
)不应该(
)一定要了解变量占用的字节数不要使用未初始化的变量应使用typedef提高程序的可读性不用float和double存储int数据,这会导致运算效率低下声明变量时应尽可能对它进行初始化不要将超出变量取值范围的值赋给变量,不要将负值赋给unsigned20精选2021版课件3.4常量在程序运行过程中,其值不能被改变的量称为常量常量有两种:字面常量和符号常量3.4.1字面常量定义:是在程序源代码中直接输入的值如:intcount=20;floattaxrate=0.2820和0.28是字面常量常量区分为不同的类型:整型
100,125,-100,0浮点型
3.14,0.125,-3.789,100.字符型
‘a’,‘b’,‘2’字符串
“a”,“ab”,“
1232”21精选2021版课件浮点型常量:包含小数点的字面常量,C编译器将其表示为一个双精度数字,3.4.1字面常量两种表示形式小数指数0.1233e-3注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e
22精选2021版课件整型常量:不包含小数点的字面常量
有三种表示方式:(1)十进制整数(0-9)。如:123,-456.4。
(2)八进制整数,以0开头(0-7)。如:0123表示八进制数123,等于十进制数
83;-011表示十进制数-9。
(3)十六进制整数。以0x或0X开头(0-9,A-F)。如:0x123,代表16进制数123,等于十进制数
291。-0x12等于十进制数-18。3.4.1字面常量23精选2021版课件字符常量:用单引号包含的一个字符是字符型常量
注意:字符常量只能包含一个字符3.4.1字面常量例:
‘a’,’A’,‘1’‘abc’、“a”24精选2021版课件字符串常量:是一对双撇号括起来的字符序列例:合法的字符串常量:“Howdoyoudo.”,“CHINA”,“a”,“$123.45”可以输出一个字符串,如
printf(“Howdoyoudo.”);注意:’a’是字符常量,”a”是字符串常量,二者不同。C规定:在每一个字符串常量的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。C规定以字符’\0’作为字符串结束标志3.4.1字面常量25精选2021版课件什么是符号常量?
符号常量是程序中用名称(符号)表示的常量。其值不能被修改。当程序中需要这种常量的值时,可以使用其名称,就像使用变量名一样。符号常量的实际值只需输入一次,并且实在首次定义时完成的。优点(与字面常量相比):
提高了代码的可读性
修改一个常量时能够做到“一改全改”3.4.2符号常量26精选2021版课件例:计算圆周长和圆面积时,需要用到圆周率π的值,例如当半径已知时,可以用下面的代码计算:
代码1:circumference=3.14*(2*radius);area=3.14*(radius)*(radius);
如果定义了一个名为PI,值为3.14的符号常量,那么代码改为:
代码2:circumference=PI*(2*radius);area=PI*(radius)*(radius);
PI比数字3.14的含义更加清楚。
如果将3.14改为3.1415926,那么代码2只需在定义该常量的地方修改一次,能够做到一改全改3.4.2符号常量27精选2021版课件符号常量的定义两种方式:使用编译指令#define使用关键字const。#define的用法如下:#defineCONSTNAMEliteral该指令常放在主函数前面创建一个名为CONSTNAME、值为literal的常量,其中literal是一个字面常量。CONSTNAME的命名规则与变量名相同,不过符号常量一般用大写表示例如前面的范例,定义符号常量PI的指令如下:#definePI3.1415926注意:
#define不以分号结尾。3.4.2符号常量28精选2021版课件2.#define的工作原理
#define编译指令的准确含义是命令编译器将源代码中所有的CONSTNAME替换为literal。
但是,它不会将长名称中、双引号中和程序注释中的内容进行替换。
例:#definePI3.14159/*youhavedefinedaconstantforPI*/#definePIPETTE100
第2和第3行中的PI不会被替换3.4.2符号常量29精选2021版课件例
#define的使用#definePRICE30#include<stdio.h>voidmain(){intnum,total;num=10;total=num*PRICE;printf(“total=%d\n”,total);}说明:
符号常量不能被赋值。如用下述赋值语句是错误的:PRICE=40;/*错误,不能给符号常量赋值*/说明:
程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可以和常量一样进行运算。说明:
输出一行信息:total=30030精选2021版课件3.使用关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高性能储能用连接器检测规范-征求意见稿
- 人教陕西 九年级 下册 语文 第六单元《 诗词曲五首》习题课 课件
- 新人教版高中语文必修2瓦尔登湖 同步练习 基础题
- 沪教版高中语文第四册谏太宗十思疏 同步练习下列加粗词语的注音不正确
- 高中语文第四册哈姆莱特(1)语文版 教学要求
- 高中语文必修3奇妙的超低温世界 同步练习积累运用
- 冷库设备采购合同范例
- 企业员工股权合同范例
- 健身房股权投资合同范例
- pos机租赁合同范例
- 拉森钢板桩支护专项施工方案
- 内蒙12J9-1 室外工程建筑标准图集
- 小学英语五年级下册Unit 1 Part B Read and write2教学设计
- 医疗安全与医疗核心制度
- 2023年BEC商务英语高级考试历年模拟真题
- 驾驶员职业心理和生理健康知识专家讲座
- 信息安全等级保护测评指南
- 三岁乐高小火车
- GB/T 712-2022船舶及海洋工程用结构钢
- GB/T 30707-2014精细陶瓷涂层结合力试验方法划痕法
- GB/T 2007.2-1987散装矿产品取样、制样通则手工制样方法
评论
0/150
提交评论