21天学会c语言第3章

上传人:z*** 文档编号:243132552 上传时间:2024-09-16 格式:PPT 页数:35 大小:1.07MB
返回 下载 相关 举报
21天学会c语言第3章_第1页
第1页 / 共35页
21天学会c语言第3章_第2页
第2页 / 共35页
21天学会c语言第3章_第3页
第3页 / 共35页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第三章 存储信息:变量和常量,本章要点,声明和初始化变量,C,语言中的两种数值常量,1,主要内容,3.0,引言,3.1,计算机内存,3.2,使用变量存储信息,3.3,数值变量的类型,3.4,常量,3.5,总结,2,3.0,引言,3,计算机程序通常使用不同类型的数据,如数字、字符,数据类型不同,存储方式不同,存储数值的方式:,变量和常量,变量:代表数据存储位置,其值在程序执行期间可能发生变化,常量:其值固定,不能修改,3.1,计算机内存,4,数据的存储空间,-RAM,计算机运行时,使用随机存储器,(RAM),存储信息。,RAM,通常位于计算机的内部,必要时将被擦除,并被替换为新的信息。,RAM,可以存储哪些数据呢?,若程序的功能是维护地址列表,监视股票行情,记录家庭预算,跟踪猪肉价格,那么在程序运行期间,如姓名,股价,家庭开销,猪肉价格等信息将存储在,RAM,中,3.1,计算机内存,5,RAM,的特点,计算机开启时,内存中的信息可用,一旦关闭计算机,内存中的信息将丢失。,目前,计算机中的内存是以内存条的形式插在主板上的,RAM,量通常以,MB,、,GB,为单位,如,512MB,,,2GB,,,4GB,,,8GB,等,1GB=1024MB,1MB=1024KB,1KB = 1024,字节,3.1,计算机内存,6,字节(,Byte,)是计算机数据存储空间的基本单位,RAM,逐字节排列,每个字节的内存都对应一个唯一的地址,内存的地址是依次指定的,最小为,0,,最大取决于系统内存容量。,程序运行时,地址由,C,编译器自动处理,数据,所需字节数,字母,x,1,数字,500,2,数字,241.105,4,短语,Sams teach yourself C,22,表,3.1,存储数据所需内存,7,3.2,使用变量存储信息,变量名实际上是一个以一个名字代表一个内存地址,在对程序编译连接时由编译系统分配。,从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。,变量代表内存中具有特定属性的一个存储单元,它用来存放数据,即变量的值,在程序运行期间可变。,变量命名的规则:,语言规定标识符只能由,字母、数字和下划线,三种字符组成,且,第一个字符必须为字母或下划线,。,8,3.2.1,变量名,可以是(,),不可以是(,),由字母、数字、下划线组成,C,语言关键字,第一个字符为字母或,下划线(不推荐),第一个字符为数字,例:,Percent, y2x5_fg7h, annual_profit,lotus_1_2_,,,_1990_tax,M.D.John,¥,123,4sale,ab,savings#account,,,int,C,语言区分大小写:,percent,,,PERCENT,代表不同的变量,Percent,9,3.2.1,变量名,注意:,虽然是不成文的规定,但通常变量名用小写字母,常量用大写字母,C,编译器要求:变量名最多有,31,个字符,在选择变量名和其它标识符时,应注意做到,“,见名知意,”,,即选有含意的英文单词 (或其缩写)作标识符,例如,interest_rate, InterestRate,10,3.2.1,变量名,应该(,),不应该(,),使用描述性的变量名,尽量不使用下划线做首字符,坚持使用一种命名变量的规则,变量尽量不全部用大写字母,3.3,数值变量的类型,11,数据类型,指针类型,*,空类型,(无值类型),void,基本类型,整型,int,字符型,char,实型(浮点型),单精度实型,float,双精度实型,double,构造类型,数组类型,枚举类型,enum,结构类型,struct,共用体类型,union,C,语言变量的类型:,分为两大类:,整型变量:,-,存储不带小数的数值(整数),浮点型变量:,-,存储带小数的数值(实数),注意:,不同数值所需要的内存空间不同,对它们执行的数学运算也不同。存储小型整数(如,1,199,和,-8,)所需内存较少,对其运算速度快;存储大型整数和实数所需内存较多,执行数学运算所需时间长,12,3.3.1,数值变量的类型,有符号整型,无符号整型,13,表,3.2,数值数据类型,变量类型,关键字,所需内存,(字节),取值范围,字符,char,1,-128,127,短整型,short,2,-32768,32767,整型,int,4,-2,31,2,31,-1,(,2147483647,),长整型,long,4,-2,31,2,31,-1,特长整型,long long,8,-2,63,2,63,-1,无符号字符,unsigned char,1,0,255,无符号短整型,unsigned short,2,0,65535,无符号整型,unsigned int,4,0,(,2,32,-1,),无符号长整型,unsigned long,4,0,(,2,32,-1,),无符号特长整型,unsigned long long,8,0,(,2,64,-1,),单精度浮点数,float,4,1.2E-38,3.4E38,双精度浮点数,double,8,2.2E-308,1.8E308,注意:,表,3.2,中的浮点型数据只是给定了该类数据能够存储的变量的最大值和最小值的大概范围,我们无法给出其精确范围单精度浮点型数据的有效数字为,7,位双精度浮点型数据的有效数字为,19,位,例如,1/3,的值为,0.3333333,,用单精度浮点型变量存储它时只存储了,7,个,3,的精度。,在,32,位,PC,上,,short,与,int,型数据在内存中占据的长度相同,则它的表数范围与,int,型相同。因此一个,int,型的常量同时也是一个,short int,型常量,可以赋给,int,型或,short int,型变量。,14,3.3.1,数值变量的类型,注意(续):,将整型变量声明为有符号时,不需要使用特殊的关键字,默认情况下,整型变量为有符号的。但是,也可以在前面加上关键字,signed,表,3.2,列出的关键字用于声明变量,数据类型的大小随计算机平台而不同,但是以下几点对任何计算机都适用:,char,的长度为一个字节,short,长度不超过,int,,,int,长度不超过,long,unsigned,长度,=int,float,长度不超过,double,15,3.3.1,数值变量的类型,16,程序,3.1,计算,C,语言变量占用的计算机内存空间,变量必须先声明,后使用,,变量声明将变量的名称和类型告诉编译器。声明还可以将变量初始化为特定的值如果使用一个未经声明的变量,那么编译时会生成错误消息,格式:,typename varname,;类型 变量名;,类型必须为表,3.2,列出的关键字之一,,varname,是变量名称,遵循变量名命名规则,可以在同一行中声明多个同一类型的变量,只需将变量名用逗号隔开,例如:,int count,number,start;,float percent,total;,17,3.3.2,变量声明,功能,:给已有的数据类型制定一个新的名称,也即创建一个同义词,例子:,typedef int integer;,将,integer,作为,int,的同义词,然后就可以使用,integer,定义,int,变量。,如,integer count,;,= int count,;,注意:,typedef,并不创建新的数据类型,而是能够让我们将不同的名称用于一个预定义的数据类型,常用于聚集数据类型,聚集数据类型是由多种数据类型组合而成的。,18,3.3.3 Typedef,关键字,声明变量使计算机为变量留出存储空间;但是,存储在该空间的值,也即,变量的值并没有指定,,它可能为,0,,也可能是任意一个随机值,使用变量之前一定要将其初始化为一个确定的值,初始化的方式:,(,1,)声明变量后,,使用赋值语句初始化变量,如:,int count;,count = 0;,(2),声明时对变量初始化,只需在变量后加等号和初始值,如,int count = 0 ;,double percent,= 0.01, taxrate = 28.5;,19,3.3.4,初始化变量,注意:,不要将变量初始化为允许范围之外的值,例如:,short weight = 100000;,unsigned int value = -2500,C,编译器不会发现这种错误,因此编译连接不生成错误消息,但是将会出现与期望不同的结果,20,3.3.4,初始化变量,应该(,),不应该(,),一定要了解变量占用的字节数,不要使用未初始化的变量,应使用,typedef,提高程序的可读性,不用,float,和,double,存储,int,数据,这会导致运算效率低下,声明变量时应尽可能对它进行初始化,不要将超出变量取值范围的值赋给变量,不要将负值赋给,unsigned,3.4,常量,21,在程序运行过程中,其值不能被改变的量称为常量,常量有两种:字面常量和符号常量,3.4.1,字面常量,定义:,是在程序源代码中直接输入的值,如:,int count = 20,;,float taxrate = 0.28,20,和,0.28,是字面常量,常量区分为不同的类型:,整型,100,,,125,,,-100,,,0,浮点型,3.14,,,0.125,,,-3.789,,,100.,字符型,a,b,,,2,字符串,“,a,”,“,a,b,”,,,“,1232,”,浮点型常量:,包含小数点的字面常量,,C,编译器将其表示为一个双精度数字,,22,3.4.1,字面常量,两种表,示形式,小数,指数,0.123,3,e-3,注意,:,字母,e(,或,E),之前必须有数字,且,e,后面的指数必须为整数,1e3,、,1.8e-3,、,-123e-6,、,-.1e-3,e3,、,2.1e3.5,、,.e3,、,e,整型常量:,不包含小数点的字面常量,有三种表示方式:,(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,。,23,3.4.1,字面常量,字符常量:,用单引号包含的一个字符是字符型常量,注意:,字符常量只能包含一个字符,24,3.4.1,字面常量,例,:,a,A, 1,abc,、“,a”,字符串常量:,是一对双撇号括起来的字符序列,例,:,合法的字符串常量,:,“,How do you do.”, “CHINA”,, “,a”,, “,$123.45”,可以输出一个字符串,如,printf(“How do you do.”),;,注意:,a,是字符常量,,”,a,”,是字符串常量,二者不同。,规定:在每一个字符串常量的结尾加一个,“,字符串结束标志,”,,以便系统据此判断字符串是否结束。规定以字符,0,作为字符串结束标志,25,3.4.1,字面常量,什么是符号常量?,符号常量是程序中用,名称(符号),表示的常量。其值,不能被修改,。当程序中需要这种常量的值时,可以使用其名称,就像使用变量名一样。,符号常量的实际值只需输入一次,并且实在首次定义时完成的,。,优点(与字面常量相比):,提高了代码的可读性,修改一个常量时能够做到,“,一改全改,”,26,3.4.2,符号常量,例:计算圆周长和圆面积时,需要用到圆周率,的值,例如当半径已知时,可以用下面的代码计算:,代码,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,只需在定义该常量的地方修改一次,能够做到一改全改,27,3.4.2,符号常量,符号常量的定义,两种方式:使用编译指令,#define,使用关键字,const,。,#define,的用法如下:,#define CONSTNAME literal,该指令常放在主函数前面,创建一个名为,CONSTNAME,、值为,literal,的常量,其中,literal,是一个字面常量。,CONSTNAME,的命名规则与变量名相同,不过符号常量一般用大写表示,例如前面的范例,定义符号常量,PI,的指令如下:,#define PI 3.1415926,注意:,#define,不以分号结尾。,28,3.4.2,符号常量,2.#define,的工作原理,#define,编译指令的准确含义是命令编译器将源代码中所有的,CONSTNAME,替换为,literal,。,但是,它不会将长名称中、双引号中和程序注释中的内容进行替换。,例:,#define PI 3.14159,/*you have defined a constant for PI*/,#define PIPETTE 100,第,2,和第,3,行中的,PI,不会被替换,29,3.4.2,符号常量,例,#define,的使用,# define PRICE 30,# include,void,main(),i,nt,num,total;,num,=10;,total,= num* PRICE;,printf(“,total=%dn”,total);,30,说明:,符号常量不能被赋值。如用下述赋值语句是错误的:,PRICE=40,;,/*,错误,不能给符号常量赋值*,/,说明:,程序中用,#define,命令行定义,PRICE,代表常量,30,此后凡在本文件中出现的,PRICE,都代表,30,可以和常量一样进行运算。,说明:,输出一行信息,:total=300,3.,使用关键字,const,来定义常量,const,是一个修饰符,可以用于任何变量声明中。被声明为,const,的变量在程序执行期间不能被修改,声明时被初始化一个值,以后便不能修改,例:,const int count =100,float rate = 0.01;,const float pi = 3.14159;,const long debt = 12000000000;,注意:,const,影响声明行中的所有变量,31,3.4.2,符号常量,应该(,),不应该(,),使用常量提高程序的可读性,初始化常量后,不要试图给它赋值,32,程序,3.2,常量和变量的用法,3.5,总结,33,数值变量分为两大类:整型变量和浮点型变量,使用哪种类型的变量决定于被存储的数据的性质,使用变量之前必须先声明并且初始化,常量可分为字面常量和符号常量。常量的值在程序执行期间不能被修改。,符号常量指定了一个名称,每当需要使用该常量时,便可以使用该名称。,3.6,问与答,34,1.,问:,long int,变量能够存储更大的数字,为何不总是使用这种变量,而使用,int,变量?,答:,long int,变量占用的内存比,int,变量多。在小型程序中不会引起问题。然而,当程序逐渐变大时,应尽可能有效地使用内存。,注意:大程序中所需的不同类型的变量会很多,使用,long int,存储小的整型数据会浪费内存,导致内存不足。,3.6,问与答,35,2.,问:如果将一个小数赋给,int,变量,会出现什么情况?,答:小数部分被截去。如果该变量是一个常量,则编译器可能发出警告,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!