第三章数据类型运算符与表达式.ppt
《第三章数据类型运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《第三章数据类型运算符与表达式.ppt(63页珍藏版)》请在三一文库上搜索。
1、第三章 数据类型、运算符与表达式,3、1 C语言的数据类型 3、6 变量赋初值 3、2 常量和变量 3、7 混合运算 3、3 整型数据 3、8 算术运算 3、4 实型数据 3、9 赋值运算 3、5 字符型数据 3、10 逗号运算 3、11 位运算,3、1 C的数据类型 所谓数据结构指的是数据的组织形式。,基本类型 构造类型 指针类型 空类型,整型 实型 字符型 枚举型,数组类型 结构体类型 共用体类型,单精度型 双精度型,C语言中的数据有常量和变量之分,它们分属于以上类型。,数据类型,在程序中对用到的所有数据变量都必须指定其数据类型。,3、2 常量和变量 1、常量 在程序运行过程中其值不能改变
2、的量称为常量。一般从其字面形式即可判别。 整型常量:12,0,345 实型常量:44.6, -1.23, 1.2E-3, 6e+2 字符常量:a、D、d 字符串常量: “This is a program.” 2、符号常量 符号常量:用一个标识符代表一个常量。,#define PRICE 30 main() int num=10,total; total=num*PRICE; /*相当于total=num*30;*/ 运行结果: total=300,符号常量使用注意事项,(1) 一般符号常量用大写字母取名 (2) 符号常量的值在其作用域内不能改变 即程序里不能出现 PRICE=40;语句,3、
3、变量,1)标识符: 用来作为变量名、符号常量名、函数名、数组名、 文件名等的有效字符序列称为标识符 规定:(1)标识符只能由字母,数字和下划 线组成,且以字母或下划线开头 建议不超过 8 个字符。 (2)大小写分别表示不同的标识符。,2)关键字(保留字): 一些在编译过程中起特殊作用的标识符。 如:char, int, short, float, double if, else, while,等共计32个,3)变 量,程序运行过程中其值可以改变的量称为变量。变 量应该有名字,并在内存中占有一定的存储单元。,变量名是一个标识符。,合法的变量名: sum, _above, class1, basi
4、c,不合法的变量名: M.D.John, 3D64, ab, #33, $234,注意:(1)变量名一般用小写字母表示 (2)起变量名应遵循“见名知义”原则 (3)变量名不能与关键字同名。,4) 变量的定义及其目的,例:int a,b,c; char c1,c2;,其目的为: (1)凡未被定义的,不作变量名使用; (2)指定变量类型后,系统编译时可分配相应 的存储单元; (3)定义变量类型便于编译时检查此变量所 进行的运算是否合法。,C中变量应先定义后使用。,计算机内部的数据和C语言的数据都是以二进制补码表示的。补码的最高位为符号位,若为0,该数为正数;若为1,该数为负数。符号位与数值位一起参
5、与运算。,正数的补码即其本身。负数的补码可这样求出: (1)先求该数的绝对值,再求出对应正数的二进制编码; (2)对二进制编码按位取反; (3)对最低位加1。,补充:数的补码表示,求-2的补码(以两个字节表示),(1)求-2的绝对值,|-2|=2, 二进制编码为:0000 0000 0000 0010,(2)按位取反得:1111 1111 1111 1101,(3)最低位加1: 1111 1111 1111 1101,1,1111 1111 1111 1110,3、3 整型数据,1、整型常量,C整常数有三种表示形式: 十进制:123,456,0 八进制:以0开头, 如: 0123 等于十进制数
6、83 011 等于十进制数9 十六进制:以0x或0X打头 如:0x123 等于十进制数291 0x12 等于十进制数18 注:负数在计算机中表示形式?,2、 整型变量,整型变量,基本整型 int,短整型 shortint,长整型 long(int),无符号型,无符号整型unsigned int,无符号长整型unsigned long,无符号短整型unsigned short,3、 整型变量的定义及使用,程序中用到的变量都必须先定义,例如:,运行结果: a+u=22 , b+u= - 14,4、 整型数据的溢出,一个int型变量的最大允许值是32767,如果再加 1,其结果会是怎样一种情况?,0
7、111111111111111 数值:32767,+,0000000000000001 数值: 1,1000000000000000 数值:-32768,=,它就好像汽车的里程表一样,达到最大值后,又 从最小的开始计数.,5、 整型常量的类型,1. 值在3276832767的整常数,认为它是int型, 可赋给 int 型和 long int 型变量; 2. 值超过上述范围,而在2 21的整常数, 认为它是 long int 型,可赋给 long int 型变量; 3. 只有非负的整常数可赋给 unsigned型变量, 但 值不能超出该 unsigned 型变量的取值范围; 4. 整常量后加一个
8、l 或L,则认为其为 long int 型 常量, 如:123L,0L,432L 此常用于函数调用中,使形参类型匹配于实参类型。,31,31,3、4实型数据,1、实型常量,1)十进制数形式:由数字和小数点组成 如: 0.0 , 0.123, -34.6, .678 , 90. 注意:小数点必须有,且其前后数字不能同时缺省。 2)指数形式(科学计数法):由尾数,指数和 字母e或E组成 如:123E3 代表 12310 注意:E前必须有数字,E后必须为整数 E5 3.4E5.6 不合法,3,3)规范化的指数(输出)形式:即在字母e或E之前的小数部分中,小数点左边应有一位且只能有一位非零的数字。 如
9、:2.3478e2、3.099E5 等等. 4)实型数据在内存的存放形式:实型数据是按指数形式存储的,系统把一个实型数据分成小数部分(.xxxxx)和指数部分(采用规范化的指数形式),分别存放. 如:3.14159,小数部分占的位数越多,精度越高;指数部分占的位数越多,可表示数值范围越大.,2、实型变量,单精度型(float) 32位 7位有效数字 10 10 双精度型(double) 64位 1516 位有效数字 10 10,38,38,308,308,定义实型变量: float x , y ; double z , a, b ;,3、实型变量的赋值 实型常量不分 float型和double
10、型,系统按double型处理,若按float型处理,可在数值后面加f或F. 一个实型常量可赋给一个实型变量( float型或double型),根据变量类型截取实常量中相应的有效位数。 例: float x ; double y ; 则: x=222222.222 y=222222.222,注意实型数据的舍入误差;应当避免将一个很大的数和一个很小的数直接相加减;同理1.0/3*3!=1,3.5 字符型数据,1、字符常量 1) 一般形式字符常量: 用单引号括起来的单个字符。如: A,?,= 2) 转义字符序列: 以开头的字符序列,可表示任何 可输出的字母字符,专用字符,图形字符 和控制字符如n为换
11、行控制符,n 换行将当前位置移到下一行开头 t 水平制表(跳到下一个tab位置) b 退格,将当前位置移到前一列 r 回车,将当前位置移到本行开头 f 换页,将当前位置移到本页开头 反斜杠字符 单引号(撇号)字符 ” 双引号字符 ddd 1到3位8进制数所代表的字符 xhh 1到2位16进制数所代表的字符,2、 字符变量 用来存放一个字符常量。,定义形式: char c1,c2 ;,赋值:c1 = O ; c2 = K;,则:,printf(%c %c n ,c1 , c2);,输出:O K,一个字符变量在内存中占一个字节。,3、 字符数据在内存中的存储形式及其使用方法,1)字符数据在内存中存
12、放的是其ASCII值。 例: char c1, c2; c1 = a ; c2 = b ; 则:,97,98,c1,c2,2) C中,整型数据和字符型数据之间可通用 (1)程序中,字符数据既可按字符形式输出, 也可以整数形式输出。 由输出格式字符串 %c 和 %d 决定。 (2)字符数据可进行算术运算,字符变量 既可赋值以字符常量,也可赋以相应的 ASCII值。 C的整型数据与字符数据间可相互赋值。,运行结果: a b A B,4、 字符串常量,一对双引号括起来的字符序列。例: a, How do you do., China , abcn, $123.45,C规定:,在内存中,系统自动在每个
13、字符串的 结尾加上一个字符串结束标志0,以便 系统据此判断字符串结束标志。,所以,“a” 在内存中占两个字节。,a,0,char c ; c = a ; c = a ;,C 中无专门的字符串变量,如需要,可用 字符数组来存放。,注意:字符常量和字符串常量不可混淆。,3.6 变量赋初值,例1: int a=3; float f=3.56; char c=a;,例2: int a,b,c=3;,错例: int a=b=c=3;,此些变量的初始化不是在编译阶段完成,而是在程序执行本函数时赋予初值的,相当于有一个赋值语句。,3.7 数值型数据间的混合运算,C中,整型,字符型,实型(包括单精度, 双精度
14、)数据可出现在一个表达式中进行 混合运算。,类型自动转换规则,高,低,double float,long,unsigned,int char, short,例:int i ; float f ; double d ; long e ;,则:10 a+ i * f - d / e 合法,转换次序: (1)计算 10a, 结果为整数107 (2)计算 i*f , 结果为double型 (3)整数107与i*f的积相加,结果为double型 (4)计算 d/e , 结果为double型 (5)将10a+i * f 的结果与 d/e 的商 相减,结果为double型。,3、8 算术运算符和算术表达式,
15、1、运算符的种类、优先级和结合性 语言中运算符和表达式数量之多, 在高级 语言中是少见的。正是丰富的运算符和表达式使 语言功能十分完善。 这也是语言的主要特点 之一。 语言的运算符不仅具有不同的优先级, 而 且还有一个特点,就是它的结合性。在表达式中, 各运算量参与运算的先后顺序不仅要遵守运算符 优先级别的规定,还要受运算符结合性的制约, 以 便确定是自左向右进行运算还是自右向左进行运算。 这种结合性是其它高级语言的运算符所没有的,因此 也增加了语言的复杂性。,2. 算术运算符和算术表达式,1) 基本算术运算符 * / %(模除,或称求余) 例:7 % 3 值为 1 5/3 = 1, -5/3
16、 = -1,若参加运算的两个数中有一个为实数,则 结果为double型。,求余运算(%)要求参与运算的量均为整型。 其结果等于两数相除后的余数。,main( ) printf(“nn%d,%dn“,20/7,-20/7); printf(“%f,%fn“,20.0/7,-20.0/7); 参与运算量均为整型时, 结果也为整型,舍去小数。 如果运算量中有一个是实型,则结果为双精度实型。 本例中,20/7,-20/7的结果均为整型,小数全部舍 去。而 20.0/7和-20.0/7由于有实数参与运算,因此 结果也为实型。,2) 算术表达式,表达式是由常量、变量、函数和运算符组合起来 的式子。 一个表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 数据类型 运算 表达式
链接地址:https://www.31doc.com/p-2581079.html