基本数据类型和运算符及表达式

上传人:san****019 文档编号:71021695 上传时间:2019-01-19 格式:PPT 页数:95 大小:710.81KB
返回 下载 相关 举报
基本数据类型和运算符及表达式_第1页
第1页 / 共95页
基本数据类型和运算符及表达式_第2页
第2页 / 共95页
基本数据类型和运算符及表达式_第3页
第3页 / 共95页
基本数据类型和运算符及表达式_第4页
第4页 / 共95页
基本数据类型和运算符及表达式_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《基本数据类型和运算符及表达式》由会员分享,可在线阅读,更多相关《基本数据类型和运算符及表达式(95页珍藏版)》请在金锄头文库上搜索。

1、第2章,基本数据类型和运算符及表达式,第2页,主要内容,常量与变量 整型数据 实型数据 字符型数据 运算符和表达式 数据类型的转换 程序案例 小结,第3页,2-1 常量与变量,常量和符号常量 变量,第4页,常量,所谓常量,是指在程序运行过程中其值保持不变的量。如程序中的具体数字、字符等。常量被区分为不同的类型。,第5页,符号常量,用一个标识符代表一个常量,称为符号常量,即标识符形式的常量。,第6页,2-1-2 变量,变量的概念 变量的定义 变量的初始化,第7页,变量的概念,C语言中的变量是指在一个程序运行过程中,其值能被改变的量。 一个变量应该有一个名字作为标识,变量名的命名规则也就是相关标识

2、符的命名规则。,第8页,变量的定义,在C语言中,所有变量必须在使用之前给予说明。也就是“先定义,后使用”,说明主要是指出变量的类型。 变量定义的一般格式为: 数据类型标识符 变量名1,变量名2,变量名n;,第9页,变量的存储,第10页,变量的初始化,在定义变量时同时初始化变量 int a=8; /*指定a为整型变量,初值为8*/ float f=8.24; /*指定f为实型变量,初值为8.24*/ char c=a; /*指定c为字符型变量,初值为a*/ 给被定义变量的部分赋初值 int a,b,c=-6; 它表示指定a、b、c均为整型变量,而只对c进行初始化,且c的初值为-6。,第11页,变

3、量的初始化,对几个变量赋给同一个初值 若对几个变量赋同一个初值,不能写成: int a=b=c=6; 而应写成: int a=6,b=6,c=6; 初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋给初值的,相当于有一个赋值语句。,第12页,2-2 整型数据,整型常量 整型变量,第13页,2-2-1 整型常量,十进制的整型常量:十进制数允许出现的数字是0-9共10个阿拉伯数字,并以非0数字开头。如456、-789、0等。 八进制的整型常量:以0开头的整型常量是八进制整型常量。 十六进制的整型常量:以0x开头的整型常量是十六进制整型常量。,第14页,2-2-2 整型变量,整型变量的分类

4、整型数据在内存中的存放形式 整型变量的定义 整型数据的溢出,第15页,整型变量的分类,基本整型,以int表示。 短整型,以short int表示,或以short表示。 长整型,以long int表示,或以long表示。,第16页,整型变量的表示方法,第17页,C语言整型变量数值的表示范围,第18页,整型数据在内存中的存放形式,数据在内存中是以二进制形式存放的。如果定义了一个整型变量i,系统就给变量i分配相应的存储单元。,第19页,整型变量的定义,定义变量一般要在程序块的首部进行,以免在编译中出现变量未定义的错误。变量定义的位置决定了被定义变量的作用域,这一概念将在以后介绍。 描述数据类型的关键

5、字与被定义的变量之间至少要有一个以上的空格隔开,这样做的目的一是便于阅读程序,二是便于编译系统识别。 多个变量是同一数据类型时,可以用一个数据类型的关键字进行定义,但必须注意,变量间要用逗号隔开,结尾要用分号结束。 变量可以以任意顺序进行定义,不必与它们在代码块中出现的顺序相对应。 在定义short int型、long int 型和unsigned int 型变量时,可以只用short,long和unsigned进行定义。,第20页,整型变量的定义,一个整型常量,其值在-32 76832 767范围内,认为它是int型,它可以赋值给int型和short int型变量。 一个整型常量,其值若超过

6、了上述范围,在-2 147 483 6482 147 483 647范围之内,则认为它是long int 型,可以将它赋值给一个long int 型变量。 如果C语言版本(如Turbo C)确定short int 与int 型数据在内存中占据的长度相同,则它的表数范围与int 型相同。因此,一个int型的常量也同时是一个short int 型常量,可以赋值给int 型或short int 型变量。 常量中无unsigned类型。但一个非负值的整型常量可以赋值给unsigned型的整型变量,只要它的范围不超过变量数值的表示范围即可。 在一个整型常量后面加一个字母l 或L,则认为是long int

7、 型常量。,第21页,整型数据的溢出,第22页,2-3 实型数据,实型常量 实型变量,第23页,2-3-1 实型常量,实型常量的形式 实型常量的类型,第24页,实型常量的形式,十进制数形式 由数字09和小数点组成(注意,必须有小数点)。如3.14159、0.123、.321、21.0、0.0等。 注意:在用十进制数书写实型常量时,必须包含小数点,小数点的两边不一定要求都有数字,例如,21.0可以写成21.;而0.123可以写成.123。,第25页,实型常量的形式,指数形式 实型常量的指数形式类似于数学中的指数表示法,就是把其10的多少次幂中的10用E(e)代替。一般格式为: 尾数E(e)整数指

8、数 如5.11027,7.21023。在C语言程序中表示为:5.1e-27,7.2e23或7.2e+23。 注意:在用指数形式书写实型常量时,e(或E)的前面和后面必须有数字,且e后面的指数必须为整数,而尾数可以是整数也可以是小数。例如,.0e0、1E0、0e5合法,而e3、2.1e3.5、.e3、e等都不是合法的指数形式。,第26页,实型常量的类型,许多编译系统将实型常量作为双精度来处理。例如,已定义一个实型变量f,有如下语句: f=3.86435*6620.87 系统将3.86435和6620.87按双精度数据存储(占64位)和运算,得到一个双精度的乘积,然后取前16位赋给实型变量f。这样

9、做可以保证计算结果更精确,但是运算速度降低了。若在数的后面加字母f或F(如1.65f、654.87F),这样编译系统就会按单精度(32位)处理。,第27页,实型常量的类型,一个实型常量可以赋给一个float型、double型或long double型变量。根据变量的类型截取实型常量中相应的有效位数字。,第28页,2-3-2 实型变量,实型变量的分类 实型变量的定义 实型数据在内存中的存放形式 实型数据的误差,第29页,实型变量的分类,实型变量分为单精度(float型)、双精度(double型)和长双精度(long double型)3类。,第30页,实型变量,第31页,实型变量的定义,使用单精度

10、型变量之前,必须在程序块的首部对其进行定义。定义单精度型变量的关键字是float。 定义i为长双精度实数。C编译系统将为其分配8个字节(128bit)的存储空间。,第32页,实型数据在内存中的存放形式,第33页,实型数据在内存中的存放形式,第34页,实型数据的误差,由于实型变量是用有限的存储单元存储的,因此,能提供的有效数字总是有限的,在有效位以外的数字将被舍去。由此可能会产生一些误差。,第35页,2-4 字符型数据,字符常量 转义序列 字符串常量 符号常量 字符型变量 字符数据在内存中的存放形式及其使用方法,第36页,2-4-1 字符常量,C语言中字符型常量是由一对单引号括起来的单个字符构成

11、。例如:x,y,7,%,;等都是有效的字符型常量。,第37页,2-4-2 转义序列,除了以上介绍的字符常量之外,C语言还允许用一种特殊形式的字符常量,就是以一个“”开头的字符序列。,第38页,转义序列,第39页,2-4-3 字符串常量,C语言中除了允许使用字符型常量外,还允许使用字符串常量。字符串常量是用一对双引号括起来的字符序列。,第40页,2-4-4 符号常量,C语言中,常量可以用符号代替,代替常量的符号称之为符号常量。为了便于与一般标识符、变量名相区别,符号常量一般用大写英文字母序列构成,符号常量在使用之前必须预先进行定义。 其定义的一般格式是: #define 符号常量名 常量,第41

12、页,2-4-4 符号常量,使用符号常量增强了程序的可读性。 使程序易于修改。,第42页,2-4-5 字符型变量,字符型变量是用来存放字符常量的,在一个字符变量中只能放一个字符,而不能存放一个字符串(包括若干字符)。 字符型变量和整型变量一样也需要先定义,其定义应该在程序块的首部,其关键字是“char”。 字符型变量的定义形式如下: char c1,c2;或char c1; char c2;,第43页,2-4-6 字符数据在内存中的存放形式及其使用方法,字符常量在内存中的存放形式及使用 字符串常量在内存中的存放形式,第44页,字符常量在内存中的存放形式及使用,将一个字符常量放到一个字符型变量中,

13、实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。,第45页,字符常量在内存中的存放形式,第46页,字符串常量在内存中的存放形式,字符串常量在内存中存储时,系统自动在该字符串的末尾加一个“字符串结束标志”,这个结束标志就是0(ASCII码值为0的字符),也用NULL表示。它是一字节(8bit)的代码,因此,长度为n个字符的字符串常量,在内存中要占用n+1个字节的存储空间。,第47页,2-5 运算符和表达式,运算符的分类 运算符的优先级与结合性 算术运算符和算术表达式 增1、减1运算符及表达式 赋值运算符和赋值表达式 关系运算符和关系表达式 逻辑运算符和

14、逻辑表达式 逗号运算符和逗号表达式 sizeof运算符,第48页,2-5-1 运算符的分类,圆括号运算符:( )。 算术运算符:+、-、*、%。 增1、减1运算符:+、-。 赋值运算符:=及其扩展赋值运算符。 关系运算符:、=、=、=、!=。 逻辑运算符:&、!。 逗号运算符:,。 求字节数运算符:sizeof。,第49页,2-5-1 运算符的分类,强制类型转换运算符:(类型)。 条件运算符:?、:。 下标运算符: 。 指针运算符:*、&。 分量运算符:、。 位运算符:、|、。,第50页,2-5-2 运算符的优先级与结合性,运算符的优先级 运算符的结合性,第51页,运算符的优先级,所谓运算符的

15、优先级就是在一个表达式中运算符所具有的运算优先次序。优先级数字越大,表示优先级越高,越优先被执行。 在C语言中,运算符的优先顺序共分15个等级,最低为1,最高为15。处在同一级别的运算符,它们的优先级相同。,第52页,运算符的结合性,所谓运算符的结合性就是同一优先级的运算符的结合方向。自左至右的结合方向,称为“左结合性”;反之称为“右结合性”。 除单目运算符、赋值运算符和条件运算符是“右结合性”,即第14、3、2级。其他运算符都是“左结合性”。,第53页,2-5-3 算术运算符和算术表达式,算术运算符 算术表达式 算数运算符的优先级、结合性,第54页,算术运算符,C语言有如下5个算术运算符。

16、+:加法运算符,或正值运算符,如1+4,+8。 -:减法运算符,或负值运算符,如5-2,-9。 *:乘法运算符,如2*6。 /:除法运算符,如7/4。 %:模运算符,或称求余运算符,如5%3。,第55页,算术运算符,两个整数相除的结果为整数,如5/3的结果值为1,舍去小数部分。但是,如果除数或被除数中有一个为负值,则舍入的方向是不固定的。 模运算是取整数除法的余数。,第56页,算术表达式,算术运算符和操作数结合构成算术表达式。 操作数包括常量、变量、函数等。,第57页,算数运算符的优先级、结合性,算术运算符中的“*、/、%”运算符指定优先级是第13级,它们优先于优先级小于13级的各种运算符,但它们低于优先级为第15级和第14级的运算符。而运算符+、-的优先级是第12级。也就是说在一个表达式中有加、减、乘和除运算时要先进行乘、除运算,而后进行加、减运算。,第58页,2-5-4 增1、减1运算符及表达式,增1、减1运算符 增1、减1表达式,第59页,增1、减

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

当前位置:首页 > 高等教育 > 大学课件

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