数据类型ppt课件.ppt

上传人:小飞机 文档编号:1350131 上传时间:2022-11-12 格式:PPT 页数:63 大小:1.03MB
返回 下载 相关 举报
数据类型ppt课件.ppt_第1页
第1页 / 共63页
数据类型ppt课件.ppt_第2页
第2页 / 共63页
数据类型ppt课件.ppt_第3页
第3页 / 共63页
数据类型ppt课件.ppt_第4页
第4页 / 共63页
数据类型ppt课件.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《数据类型ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据类型ppt课件.ppt(63页珍藏版)》请在三一办公上搜索。

1、第二章 数据类型运算符 和 表达式,第二章 数据类型、运算符和表达式,内容提要 数据类型常量与变量运算符与表达式,2.1 数据类型,数据类型总表,数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作,说明:数据类型所占字节数随机器硬件不同而不同, 上表以IBM PC机为例。,基本数据类型,2.1 数据类型,2.2 常量与变量,数据是程序的处理对象C语言将数据分为常量与变量,2.2.1 常量1.常量的定义及分类定义:程序运行的过程中,其值不能改变 的量。分类: 整型常量 实型常量 字符常量 字符串常量 符号常量,2.2 常量与变量,2.整型常量(既整常数)三种形式:十进制

2、整数:由数字09和正负号表示.如 123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff,转换成十进制数的方法:0123 = 1x82 +2x81+3x80 =( 83 )100 x123 = 1x162 +2x161+3x160= ( 291 )100Xff = 15x161+15x160=( 255 )10,2.2 常量与变量,整型常量的说明(1)空白字符不可以出现在整数数字之间 (2)根据其值所在范围确定其数据类型(3)在整常量后加字母l或L,认为它是 long int 型常量,例如

3、 30000 为int型 65536 为long int 型 79L、012L 为long int 型,2.2 常量与变量,3.实型常量实常数或浮点数,是一个十进制表示的符号实数表示形式:十进制小数形式 digits.digits 如0.123, .123, 123.0, 0.0, 123.指数形式(包括整数部分、尾数部分和指数部分 ) digits .digits E|e + | - digits 小数点之前是整数部分,小数点之后是尾数部分,小数点在没有尾数时可省略。 如12.3e3 ,123E2,2.2 常量与变量,实型常量的说明(1)实型常量采用十进制小数形式表示时,必须有 小数点。例如

4、:123. 是实型常量,而123是整型 常量(2)采用指数形式表示时,在E或e之前必须要有数 字,且之后的指数必须为整数。例如:E6、.e6、 e 等都是不合法的(3)实型常量的整数部分为0时可以省略,如下形式 是允许的:.57, .0075e2, -.125, -.175E-2(4)所有的实型常量均被看作是双精度类型(double),2.2 常量与变量,4.字符常量定义:用单引号括起来的单个普通字符或转义字符。分为一般字符常量和特殊字符常量一般字符常量:如a、9、!等。单引号只起定界作用并不表示字符本身,中间的字符可以是除单引号()和反斜杠( )以外的数字、字母等C语言字符集中包含的所有可显

5、示字符。特殊字符常量(也叫转义字符)是C语言中表示字符的一种特殊形式,其含义为将反斜杠()后面的字符转换成另外的意义。,2.2 常量与变量,字符常量的值:该字符的ASCII码值,如 A65, a97, 048 , n10,2.2 常量与变量,aaa,13,如 101 -A 012 -n 376 - x61 -a 060 -0,例 转义字符举例 int main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);,运行结果:(屏幕显示)A B CIsay:”How are

6、you?”C ProgramTurbo C,2.2 常量与变量,字符常量与字符串常量不同,5.字符串常量定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个 0 作为字符串结束标志,例: char ch; ch=“A”;,例: char ch; ch=A;,2.2 常量与变量,6.符号常量 (1)标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度:最长32个字符命名原则:见名知义不宜混淆 如1与l, o与0,2.2 常量与变量,在C语言中,允许将程序中的常量定义为一个标识符,称为符号常量。

7、在使用符号常量前必须先加以定义,一般情况下,符号常量使用大写英文字母表示。,其定义的一般形式为:#define 例如: #define PRICE 35,2.2 常量与变量,2.2.2 变量概念:其值可以改变的量变量名与变量值变量定义的一般格式:数据类型 变量1,变量2,变量n;变量初始化:定义时赋初值变量的使用:先定义,后使用,决定分配字节数和数的表示范围,合法标识符,例: int a,b,c; float data;,例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1; ,2.2 常量与变量,

8、变量定义位置:一般放在函数开头,2.2 常量与变量,与常量类似,变量也有不同的类型,一般可以分为以下三种类型: 整型变量 实型变量 字符变量,2.2 常量与变量,1.整型变量 (1)整型变量的分类 基本型 短整型 长整型 无符号整型,基本型:类型说明符为int,在内存中占2个字节。,短整型:类型说明符为short int或short,所占字节和取值范围均与基本型相同。,长整型:类型说明符为long int或long,在内存中占4个字节。,无符号整型:类型说明符为unsigned。. 无符号基本型:类型说明符为 unsigned int或 unsigned。. 无符号短整型:类型说明符为unsi

9、gned short。. 无符号长整型:类型说明符为unsigned long。,2.2 常量与变量,例2-1 整型变量的使用#include int main() int x,y,z; x=10;y=20; z=x+y; printf(“x+y=%dn”,z); return 0;输出结果:x+y=30,(2)整型变量的定义与使用,2.2 常量与变量,int x;x=10;则变量x的值10在内存中的存放形式: int x;x=-10;则变量x的值10在内存中的存放形式:,(3)整型数据在内存中的存放形式,2.2 常量与变量,例2-2 整型数据的溢出问题#include int main()

10、int x, y; x=32767; y=x+1; printf(%d,%dn,x,y); return 0; 运行结果:-32768原因:一个int型变量只能容纳-32768到32767范 围内的数,无法表示超过这个范围的数。,(4)整型数据的溢出,2.2 常量与变量,2.实型变量 (1)实型变量的分类单精度实型:类型说明符为float,在内存中占4个字节,提供7位有效数字。双精度实型:类型说明符为double,在内存中占8个字节,提供1 5 1 6位有效数字。,例 float a;a=111111.111; /* a=111111.1*/double b;b=111111.111; /*

11、b=111111.111*/,2.2 常量与变量,例2-3实型变量的使用#includeint main()float x,y,z;x=10;y=20;z=x+y ;printf(“x+y=%fn”,z);return 0;运行结果:x+y=30.000000,(2)实型变量的定义与使用,2.2 常量与变量,例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */,字符变量存放字符ASCII码char与int数据间可进行算术运算,没有字符串变量,用字符数组存放,(3)字符变量,2.2 常量与变量,#include int main

12、( )char c1, c2; /* 定义c1,c2为字符型变量 */c1 = 97; c2 = 98; /* 将整数97和98分别赋给c1和c2 */printf(”%c,%cn”, c1, c2); /* 以字符形式输出c1和c2 */printf(”%d,%d”, c1, c2); /* 输出c1和c2的ASCII码值 */printf(”%d”, c1 + c2); return 0;运行结果如下:a,b97,98,2.2 常量与变量,例 #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=nu

13、m*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); ,运行结果:total=37.500000, ch1=d,(4)变量的初始化,2.2 常量与变量,运算符的分类,2.3 运算符与表达式,定义:由常量、变量、函数、运算符和括号组合起来的、符合C语法规则的式子称为表达式。一个表达式有一个值以及其对应的类型表达式求值首先进行优先级高的运算再进行优先级低的运算,然后对于优先级相同的运算按结合方向进行运算。结合方向:左结合、右结合例如:,2.3 运算符与表达式,2.3.1算术运算符及算术表达式1.基本算术运算符: + - * / %结

14、合方向:从左向右优先级:(高)- -* / % - + -说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数,如果两整数中有一个是负数,舍入规则为“向零取整”如果运算的两个数中有一个是实型,则结果为double型%要求两侧均为整型数据,例5/2 = 2 -5/2.0 = -2.55%2 = 1 -5%2 = -11%10 = 15%1 = 05.5%2 (),2.3 运算符与表达式,#include int main( )printf(”10-9/6*5 = %d”, 10 9 / 6 * 5);return 0;运行结果如下:10-9/6*5 = 5,#includemain()i

15、nt x=5,y;y=+x;printf(%dn,y);输出结果:6,例2-5 计算表达式10-9/6*5,2.3 运算符与表达式,例2-6 计算表达式10-3.0/2的值#include int main( )printf(”10-3.0/2=%f”, 10 - 3.0 / 2);运行结果如下:10-3.0/2=8.500000,2.3 运算符与表达式,2.算术表达式 定义:用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子称为算术表达式。其中的运算对象包括常量、变量、函数等。 例如:x+y、(x*2)/y、sin(x)sin(y)等都是算术表达式。,2.3 运算符与表达式,(1)

16、 (x+y)h2(2) s(s-a)(s-b)(s-c)(3) (x+1)2+(y-1)2在C语言中,其合法的算术表达式如下:(1) (x+y)*h/2.0(2) s*(s-a)*(s-b)*(s-c)(3) (x+1)*(x+1)+(y-1)*(y-1),例2-7 写出下列数学表达式对应的合法的C算术 表达式,2.3 运算符与表达式,种类: = = != 结合方向:自左向右 优先级别: 关系运算符优先级低于算术运算符,2.3.2 关系运算符及关系表达式1.关系运算符,例:ca+b 等价于 c(a+b) ab!=c (ab)!=c a=bc a=(bc),2.3 运算符与表达式,关系运算结果:

17、1(真)和 0(假) 例2-8 计算下列关系表达式的值(1) 1010(2) 10=10(3) 1010!=10(4) 3*8-9!=5+7%3,2.3 运算符与表达式,2.关系表达式 关系表达式的值:是逻辑值“真(True)”或“假(False)”,用1或0表示关系表达式例子 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0,2.3 运算符与表达式,种类: ! & | 逻辑运算真值表优先级 !(高 2) & (11) | (低 12),2.3.3逻辑运算符及逻辑表达式 1.逻辑运算符,2.3 运算

18、符与表达式,例2-9 假设x = 10,y = 20,分析下列逻辑表达式。(1) !x(2) x&y(3) !x|y(4) !x+5|10%y=x-10y,【例2-10】 写出满足要求的合法的C逻辑 表达式。(1) x表达0到9的字符(2) x 和y都大于0(3) x是偶数并且x100,2.3 运算符与表达式,位运算是指进行二进制位的运算例如:将一个存储单元中的各二进制位左移、右移,两个数按位相加等。,说明(1)位运算符中除 - 以外,均为二目(元)运算符,即要求两侧各有一个运算量。(2)运算量只能是整型或字符型的数据,不能为实型数据。,附:位运算符,2.3 运算符与表达式,位运算中的“&”、

19、“|”和“-”的真值表与逻辑运算等价,唯一不同的是位运算是逐位进行运算的。(异或位运算符)的真值表:,2.3 运算符与表达式,定义 :用逻辑运算符 短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。,例 a(m=ab)&(n=cd) /结果 m=0,n=1,2. 逻辑表达式,2.3 运算符与表达式,1.赋值运算符 赋值符号“”就是赋值运算符,它的作用是将一个数据赋给一个变量。,例2-11 假设变量x为整型,计算下列赋值表达式的值。(1) x = y = 10(2) x = 10+ (y = 20)(3) x = 10+

20、 (y = 20) / (z = 30),2.3.4 赋值运算符及赋值表达式,2.3 运算符与表达式,如果赋值运算符两侧的数据类型不一致,但都是数值型或字符型时,系统要进行类型转换。将浮点型数据(包括单、双精度)赋给整型变量时,舍弃浮点数的小数部分。如:为整型变量,执行“i=3.56;”的结果是使的值为,以整数形式存储在整型变量中。将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中,即用0补足有效数字位。如:i为float型变量,执行“i=3;”的结果i=3.000000,以单精度浮点数形式存储到i中。,赋值运算符类型转换,2.3 运算符与表达式,将一个double型数据赋给

21、float变量时,截取其前面7位有效数字,存放到float变量的存储单元(4个字节)中。但应注意数值范围不能溢出。如果将一个float型数据赋给double变量时,数值不变,有效位数扩展到16位,在内存中以8个字节存储。,2.3 运算符与表达式,字符型数据赋给整型变量时,由于字符只占1个字节,而整型变量为个字节,因此将字符数据(个二进位)放到整型变量存储单元的低位中。第一种情况: 如果字符型为无符号的字符型,则将字符的位放到整型变量低位,高位补零。第二种情况: 如果字符型为带符号的,则将字符的位放到整型变量低位,高位补符号位,即(符号扩展)。若字符最高位为0,则整型变量高8位补0;若字符最高位

22、为1,则高8位全补1。,2.3 运算符与表达式,将一个int、short、long型数据赋给一char型变量,只将其低8位原封不动地送到char型变量(即截断)。将带符号的整型数据(int型)赋给long型变量时,要进行符号扩展,将整型数的16位送到long型低16位中;反之,若将一个long型数据赋给一个int型变量,只将long型数据中低16位原封不动地送到整型变量(即截断)。,2.3 运算符与表达式,将unsigned int型数据赋给long int型变量时,不存在符号扩展问题,只需将高位补即可。将unsigned int型数据赋给int型变量时,将数据原封不动的送到整型变量中,但如果

23、数据范围超过相应整型的范围,会出现错误。将非unsigned型数据赋给长度相同的unsigned型变量,也是原样照赋(连原有的符号位也作为数值一起传送)。,2.3 运算符与表达式,定义:由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。例如:x10、xy10。说明:赋值运算符左侧必须是变量,不能是 常量或表达式。赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型。,例 float f; int i; i=10; f=i;则 f=10.0,错误: 3=x-2*y; a+b=3;,2.赋值表达式,2.3 运算符与表达式,赋值表达式的值与变量值相等,且可嵌套。,例: a=12

24、; a+=a-=a*a,/a=-264 等价于a=a+(a=a-(a*a),2.3 运算符与表达式,复合的赋值运算符在“=”前面加上其他运算符种类+= -= *= /= %= = &= = |=一般形式: 变量 双目运算符=表达式它等效于: 变量=变量 运算符 表达式,例2-12 假设变量x = 10,y = 20,计算下列复合的赋值表达式的值。(1) x += 10(2) x *= y + 20 (3) x += x -= x / 10,2.3 运算符与表达式,自增、自减运算符+ -作用:使变量值加1或减1优先级:+/-高于 -(单目减)种类:前置 +i, -i (先执行i+1或i-1,再使

25、用i值)后置 i+,i-(先使用i值,再执行i+1或i-1),int x, y;x = 10;y = +x;此时,变量y的值为11。如果程序改为:x = 10;y = x+;则变量y的值为10。,2.3.5 增量运算符,2.3 运算符与表达式,一般形式: expr1 ? expr2 : expr3由常量、变量、函数、运算符和括号组合起来的、符合C语法规则的式子称为表达式。执行过程,2.3.6 条件运算符及条件表达式,2.3 运算符与表达式,结合方向:自右向左例2-13 假设变量 x = 10,y = 20, z = 30,计算下列条件表达式的值。(1) x 10 ? 100 : 200(2)

26、x 10 ? x+z : y 20 ? y + z : z,2.3 运算符与表达式,一般形式:表达式1,表达式2,表达式n结合性:从左向右优先级: 15逗号表达式的值:等于表达式n的值例如:1. x=(y=1,y+1); 2. y=20; x=(y=y-10,10/y);,2.3.7 逗号运算符及逗号表达式,2.3 运算符与表达式,例1a=3*5,a*4a=3*5,a*4,a+5例2x=(a=3,6*3)x=a=3,6*a例3a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c);,例2-14 计算下列逗号表达式

27、的值。(1) x = 10 , x + 10(2) (x = 1 + 2 , x + 3) , x + 4,2.3 运算符与表达式,求字节数运算符“sizeof”是C语言提供的一种特殊的运算符,是单目运算符。求字节数运算符与操作数结合在一起构成的式子称为求字节数表达式。一般形式sizeof(表达式)或sizeof(数据类型名),例sizeof(int)sizeof(/a)sizeof x,2.3.8 求字节数运算符及求字节数表达式,2.3 运算符与表达式,一般形式:(类型说明符) (表达式)功能:把表达式的运算结果强制转换成类型说明符所表示的类型。 例如:(float)a(int) (x+y) 说明:(int)x 若原来x的类型为float型,转换后得到一个中间变量,它的值等于x的整数部分,而变量x的值不变。,2.3.9 强制类型转换运算符及表达式,2.3 运算符与表达式,C 语言运算符的优先级与结合性,C 语言运算符的优先级,由各种不同类型的表达式根据C语法规则复合在一起构成的更加复杂的表达式称为复合表达式。如:x(y=20)*(z=2) 其结果 x40,附:复合表达式,此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号