标识符常量变量课件

上传人:我*** 文档编号:144855686 上传时间:2020-09-14 格式:PPT 页数:32 大小:266KB
返回 下载 相关 举报
标识符常量变量课件_第1页
第1页 / 共32页
标识符常量变量课件_第2页
第2页 / 共32页
标识符常量变量课件_第3页
第3页 / 共32页
标识符常量变量课件_第4页
第4页 / 共32页
标识符常量变量课件_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《标识符常量变量课件》由会员分享,可在线阅读,更多相关《标识符常量变量课件(32页珍藏版)》请在金锄头文库上搜索。

1、标识符: 标识符是用户自己命名的、符合语法规范的对象名称。变量名、自定义函数名等等。 语法规范:标识符可由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 合法的标识符:sum,x1,f_name,_time等。 不合法的标识符:2a,x/y,ab等。,第二章 C语言的基本数据类型及运算,使用标识符应注意: C语言中区分大小写字母,所以Sum、SUM、sum是不同的标识符。 标识符的长度通常默认前面8个字符。例如:student_db与student_data为相同标识符。 标识符不能和C语言中的关键字相同,也不能和已定义的函数名或库函数名相同。 C语言中所有的关键字(p220

2、附录2)标准库函数(P222附录4)不是标识符,且必须使用小写字母。,为了实现程序的功能,通常要对各种数据进行处理,以获得结果。程序处理的数据从使用的角度分为: 常量 变量,常量:在程序运行过程中,其值保持不变的量。 整型常量:C语言中有三种常用整型常量。 十进制整数:156,0,-123等。 八进制整数:以0开头,如 011,023等。 十六进制整数:以0 x开头,如0 x11,0 x23等。,实型常量(浮点数):有两种表示方法 小数形式:0.123 12.3 .123 123.等。 指数形式:men(mEn) (m为非0实数,n为整数):表示 m*10n 。 如:123e+2表示123*1

3、02 123E-2表示123*10-2 注意: (1)e前后必须有数字:e4,2e(错误) (2)e后面必须是整数:2e3.5 (错误),字符常量 用单引号括起来的单个字符,如a,b等。 注意:单引号是字符常量的标志,而不属于字符常量本身。例如:a与a ,1与1 转义字符:以开头的,使后面的字符失去了原来的意义。例如n 注意: 与后面的字母或数字构成的是一个具有特殊意义的字符。例如101,例2.1 转义字符的功能。 main() printf(abE_tbcdn); printf(efg_); ,a,b,E,c,d,e,f,g,字符串常量 用双引号括起来的一个或多个字符序列称为字符串常量。例如

4、: a,CHINA,$123.45,How are you?n 可以输出一个字符串,例如: printf(How do you do.n);,字符常量与字符串常量的区别: C语言在内存中存储字符常量时,只存储字符本身,因此存储长度为1。 存储字符串时,除了存储字符本身,还要存储一个C语言中规定的字符串结束标志0,因此字符串的储存长度为(字符个数1 )。例如:a的存储长度为2, how are you.n的存储长度为14,符号常量 符号常量是用符号表示的一个常量。通常用大写字母表示,必须先用#define加以定义。 作为常量的符号必须符合C语言的标识符规范。 举例符号常量的使用:,#define

5、 PRICE 15 /*定义符号PRICE,代表整常量15*/ main() int number=10,count; count=number*PRICE; printf(count=%d,count); ,使用符号常量的好处: main() float area,circle,vol,r; r=1.0; area=3.14 *r*r; circle=2* 3.14 *r; vol= 3.14 *; 若要将3.14改为3.1415926,则该程序需要处处修改。,define PI 3.14 main() float area,circle,vol,r; r=1.0; area=PI *r*r

6、; circle=2* PI *r; vol= PI *; ,好处: 1、含义清楚,增加了程序的可读性。 2、方便程序的修改。,3.1415926,在C语言程序中用到最多的是:变量。 变量:在程序运行过程中,其值可以改变的量。 使用变量的原则: 先定义:说明变量的类型。 再使用:使用该变量进行各种运算。 所有数据在内存中以二进制形式存储,变量的类型: 整型变量: (1)有符号:二进制的最高位为符号位。 (2)无符号:二进制的最高位为数值位。 要求掌握: (1)不同整型类型名称对应的关键字 (2)系统为该类型分配的字节数 (3)该类型数据的取值范围(int、unsigned),整型常量类型的确定

7、 根据常量的范围:15 32769 在常量后面加上字母u(U)或l(L) 15L:long型常量 32769U:无符号整型常量,实型: (1)单精度:float (2)双精度:double 要求掌握: (1)每种类型的类型名称关键字 (2)系统为该类型分配的字节数 (3)该类型数据的取值范围 (4)有效位:能够准确表达的数字的位数。,有效位举例:(double有效位16位,float有效位7位) double a; float b; a=123456789.1234; b=123456789.1234; printf(a=%f b=%f,a,b); 运行结果: a=123456789.1234

8、00 b=123456792.000000,字符型:在内存中只需要一个字节: (1)有符号:char (2)无符号:unsigned char 注意:字符在内存中存放的是该字符对应的ASCII码。因此,字符和整型间可以相互赋值。例如: char c; c=65; printf(%d %c,c,c);,输出: 65 A,字符串常量不能赋值给字符变量: 例如: char ch; ch=a; ch=a; 因为字符变量只分配一个字节,而一个非空字符串至少需要两个字节的空间。,例2.3 整型数据与字符型互换输出。 main() char c1,c2; c1=98; c2=99; printf(%c,%c

9、n,c1,c2); printf(%d,%dn,c1,c2); ,运行结果如下: b,c 98,99,例2.4 将大写字母转换成小写字母。 main() char c1,c2; c1=A; c2=B ; c1=c1+32; c2=c2+32; printf(%c %cn,c1,c2); printf(%d %d,c1,c2); 字符变量可以进行算术运算。,运行结果如下: a b 97 98,变量的定义及赋值 C规定,所有的变量必须先定义,后使用。 定义方式: 类型名称 变量1,变量2,;,用户自定义变量的名称,必须符合C标识符的规定,C语言规定的关键字:int、char、float,为什么变量

10、必须先定义后使用? 定义变量: (1)声明该变量的类型 (2)C系统根据其类型在内存某起始位置开始申请连续sizeof(类型名)个字节分配给该变量。 (3)在系统中建立变量名与分配空间起始地址之间的映射关系。,使用变量: (1)根据变量名与起始地址之间的映射关系找到该变量在内存中的起始地址。 (2)根据该变量的类型,从起始地址开始连续sizeof(类型名)个字节均属于该变量,可以向该段内存单元写或读数据。,小结: 内存构成:内存由若干存储单元构成,32位机的一个存储单元为32字节,每个字节相当于一个小房间,大小为一个字节,每个房间都有一个编号(内存地址)。 变量定义:是系统根据程序中声明变量的

11、类型,在内存中从某起始地址开始分配n个连续的字节,并记录下变量名、类型及其在内存的起始地址。,使用变量:根据变量名找到该变量在内存占用的空间,对该变量的访问(读数、存数)就是对这段连续内存空间的访问。 使用没有定义变量: 例如:main() int A;a=3;printf(“%d”,a); 则编译时会出现下面的错误提示: Errors:Undefined symbol a in function main.,变量的赋值(变量的使用):将数据送到变量对应的内存单元中。 (1)赋值的方式: A、定义变量同时给变量赋值: 例如:int a=3,b=4,c; 给所有变量赋相同的值: 正确方式: in

12、t a=3,b=3,c=3; 错误方式: int a=b=c=3;,B、通过赋值语句实现: 例如: int a; a=3;/*赋值语句*/ C、通过C语言提供的输入函数: 例如: int a; scanf(“%d”,给变量赋值时需要注意的问题 (1)注意被赋值变量的取值范围: 例如:short a,b; long c; a=32768; b=32767; c=b+1; printf(“%d,%ld”,a,c);,输出结果: 32768,32768,原因:32768超过了int型的范围,因而没有出现预期的结果。但C对此类错误不做检测,因而要求编程者细心。,(2)任何变量必须先赋值,然后才能进行运

13、算。 例如:main() int a,b; b=a+1;printf(“%d”,b); 编译时会出现下面的警告错误: Warning: Possible use of a before definition in function main. 若忽略,程序能够执行,但会得到一个无意义的值,(3)实型数据的有效位: main() float a,b; a=123456789000; b=a+20; printf(a=%fnb=%f,a,b); ,运行结果如下: a=123456790528.000000 b=123456790528.000000,原因:float的有效位为7位,先将20加在无效位上,因此不会得到正确的结果。若将a,b的类型改为double就可以了。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号