第三章数据类型、运算符与表达式课件.ppt

上传人(卖家):晟晟文业 文档编号:5099284 上传时间:2023-02-10 格式:PPT 页数:33 大小:249KB
下载 相关 举报
第三章数据类型、运算符与表达式课件.ppt_第1页
第1页 / 共33页
第三章数据类型、运算符与表达式课件.ppt_第2页
第2页 / 共33页
第三章数据类型、运算符与表达式课件.ppt_第3页
第3页 / 共33页
第三章数据类型、运算符与表达式课件.ppt_第4页
第4页 / 共33页
第三章数据类型、运算符与表达式课件.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、3.1 3.1 的数据类型的数据类型 数据结构是数据的组织形式,语言的数数据结构是数据的组织形式,语言的数据结构是以数据类型形式出现的。据结构是以数据类型形式出现的。整型实型(浮点型)字符型枚举类型数据类型基本类型构造类型数组类型结构体类型共用体类型指针类型空类型单精度型双精度型 3.2 3.2 常量与变量常量与变量一、常量和符号常量一、常量和符号常量 1.1.常量的定义常量的定义 常量是程序运行过程中其常量是程序运行过程中其值不变值不变的数据。的数据。2.2.常量的类型常量的类型 整型常量整型常量:21,0,-12:21,0,-12 实型常量实型常量:1.2,-3.4:1.2,-3.4 字符

2、常量字符常量:a,Z:a,Z 字符串常量字符串常量:“Shen Zhen”:“Shen Zhen”3.3.符号常量符号常量 若程序多处使用某个常量,可将它定义为若程序多处使用某个常量,可将它定义为符号常量。此时可用符号常量来替代该常量。符号常量。此时可用符号常量来替代该常量。符号常量的使用符号常量的使用#define PRICE 30#define PRICE 30 main()main()int num,total;int num,total;num=10;num=10;total=num total=num*PRICEPRICE;printf(“total=%d”,total);print

3、f(“total=%d”,total);运行结果:运行结果:total=300total=300 1 1、符号常量的值不、符号常量的值不能被改变,也不能被再能被改变,也不能被再次赋值。次赋值。2 2、符号常量名一般、符号常量名一般用大写字母,以便和变用大写字母,以便和变量区分开。量区分开。1 1、含义清楚。、含义清楚。2 2、在需要改变常量、在需要改变常量时能做到时能做到“一改全改一改全改”。常量定常量定义义二、变量和标识符二、变量和标识符 1.1.什么是变量什么是变量 变量是指在程序运行过程中其值可以发生变量是指在程序运行过程中其值可以发生变化的量变化的量。每个变量有一个名字(或叫做标识符)

4、,每个变量有一个名字(或叫做标识符),并在内存中并在内存中占据占据一定的一定的存储单元存储单元。1212a a变量名变量名变量值变量值存储单元存储单元 2.2.标识符标识符 标识符就是一个标识符就是一个名字名字,它是用来标识变量,它是用来标识变量名、符号常量名、数组名等的有效字符序列。名、符号常量名、数组名等的有效字符序列。C C语言规定语言规定:标识符只能由标识符只能由字母字母、数字数字和和下划线下划线三种字三种字符组成,且第一个字符必须为字母或下划线。符组成,且第一个字符必须为字母或下划线。几点注意:几点注意:1 1、字符区分大小写、字符区分大小写2 2、不同编译系统规定长度不同、不同编译

5、系统规定长度不同3 3、变量必须先定义,后使用。、变量必须先定义,后使用。选出下面合法的变量名。选出下面合法的变量名。sum 38abc _0123 P#dsum 38abc _0123 P#d Sum Z.Wan month ab Sum Z.Wan month ab 3.3.变量的定义变量的定义 一般格式:一般格式:类型说明符类型说明符 变量名变量名,变量名变量名 几点说明:几点说明:1 1、未定义而使用变量系统编译出错、未定义而使用变量系统编译出错2 2、指定变量的类型,以便系统为该变量、指定变量的类型,以便系统为该变量分配相应的存储空间。分配相应的存储空间。每个变量都要占用内存中连续若

6、干个字节,每个变量都要占用内存中连续若干个字节,所占用的字节数由变量类型确定。其中第一个所占用的字节数由变量类型确定。其中第一个字节的地址称为字节的地址称为变量的地址变量的地址。3 3、指定变量的类型,便于系统检查变量、指定变量的类型,便于系统检查变量间运算的合法性。间运算的合法性。3.3 3.3 整型数据整型数据一、整型常量一、整型常量 整型常量是用来表示数学中整数,包括正整型常量是用来表示数学中整数,包括正整数、整数、0 0和负整数。和负整数。整型常量有三种表示方式:整型常量有三种表示方式:十进制整数:十进制整数:21,0,-11121,0,-111 八进制整数:八进制整数:021,00,

7、-0111021,00,-0111 十六进制整数:十六进制整数:0 x21,0 x0,-0 x1110 x21,0 x0,-0 x111 整型常量:如,整型常量:如,2121,234234u u,011011u u,0 x1110 x111 长整型常量:如,长整型常量:如,0 0L L,-0111,-0111L L,0 x15,0 x15L L二、整型变量二、整型变量 1.1.整型变量的分类整型变量的分类 基本型:基本型:intint 短整型:短整型:short int/shortshort int/short 长整型:长整型:long int/longlong int/long 无符号型:无

8、符号型:unsigned intunsigned int unsigned shortunsigned short unsigned longunsigned long C C要求:要求:longlong不短于不短于int;shortint;short不长于不长于intint 通常的做法:通常的做法:longlong定为定为3232位;位;shortshort定为定为1616位;位;intint两者都可以。两者都可以。取值范围:取值范围:-32768-32768+32767+32767取值范围达取值范围达2121亿亿取值范围:取值范围:0 06553565535 2.2.整型变量的定义整型变量

9、的定义 强制类型定义强制类型定义,即在程序中所有用到的变,即在程序中所有用到的变量必须在程序中先定义。量必须在程序中先定义。例例 main()main()int a,b,c,d;int a,b,c,d;unsigned u;unsigned u;/*无符号整型无符号整型*/a=12;b=-24;u=10;a=12;b=-24;u=10;c=a+u;d=b+u;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);printf(“a+u=%d,b+u=%dn”,c,d);运行结果:运行结果:a+u=22,b+u=-14a+u=22,b+u=-143.3.整型数据的溢出

10、整型数据的溢出 *不同种类的整型数据可以进行运算。不同种类的整型数据可以进行运算。*运算超出取值范围时,系统不报告错误,运算超出取值范围时,系统不报告错误,而是采用类似钟表一样的循环计数。而是采用类似钟表一样的循环计数。例如:例如:int a=32767int a=32767,b;b;b=a+1;b=a+1;结果为结果为-32768-32768,而不是,而不是+32768.+32768.*为避免溢出,应掌握较小数据类型向较大为避免溢出,应掌握较小数据类型向较大数据类型赋值的原则。数据类型赋值的原则。如,如,int a=32767;int a=32767;long b;long b;b=a+1L

11、;b=a+1L;注:注:longlong的格式输的格式输出符为出符为ldld Printf(“%ld”,b);Printf(“%ld”,b);3.4 3.4 浮点型数据浮点型数据一、浮点型常量一、浮点型常量 浮点型常量又称浮点数,就是通常带小数浮点型常量又称浮点数,就是通常带小数点的点的实数实数。它只使用十进制数,其书写方法有。它只使用十进制数,其书写方法有两种:两种:十进制小数形式十进制小数形式 由整数、小数点和小数三部分组成。由整数、小数点和小数三部分组成。例如:例如:12.345,-1.2345,47.012.345,-1.2345,47.0 指数形式指数形式 由尾数、字母由尾数、字母e

12、 e或或E E和指数三部分组成和指数三部分组成 例如:例如:12.345e-2,-1.2345E3,0.1234E412.345e-2,-1.2345E3,0.1234E4规范化的指规范化的指数形式数形式二、浮点型变量二、浮点型变量 1.1.浮点型变量的分类浮点型变量的分类 浮点型变量可分为单精度型浮点型变量可分为单精度型(floatfloat)和双精和双精度型度型(doubledouble)两种,每个浮点型变量都应在使两种,每个浮点型变量都应在使用前加以定义。用前加以定义。float x,yfloat x,y double z double zfloatfloat4 46 67 71010-

13、37-3710103838doubledouble8 8151516161010-307-3071010308308 2.2.浮点型数据的舍入误差浮点型数据的舍入误差 由于浮点型变量的由于浮点型变量的有效位数有限有效位数有限,在有效,在有效位数以外的数字被舍去,可能会产生误差。位数以外的数字被舍去,可能会产生误差。实型数据的舍入误差。实型数据的舍入误差。main()main()float a,b;float a,b;a=123456.789e5;a=123456.789e5;b=a+20;b=a+20;printf(“printf(“%f%f”,b);”,b);运行结果:运行结果:123456

14、78848.00000012345678848.000000 (12345678920)(12345678920)3.5 3.5 字符型数据字符型数据一、字符常量一、字符常量 字符常量是用两个单引号括起来的单个字字符常量是用两个单引号括起来的单个字符,如符,如 aa、AA、11、%等。等。特殊形式的字符常量以一个特殊形式的字符常量以一个“”开头的字开头的字符序列,也叫做符序列,也叫做转义字符转义字符。(P48(P48表表3-3)3-3)转义字符的使用转义字符的使用 main()main()printf(“printf(“ababc cttdederrf fttg gnn”);”);printf

15、(“htibbj printf(“htibbjk”);k”);二、字符变量二、字符变量 字符变量用来存放字符常量。一个字符变字符变量用来存放字符常量。一个字符变量在内存中占一个字节,只能可以存放一个字量在内存中占一个字节,只能可以存放一个字符。例如符。例如 char c1,c2;char c1,c2;c1=a;c1=a;c2=b;c2=b;字符存放在字符变量中,实际上是将该字字符存放在字符变量中,实际上是将该字符的符的ASCIIASCII代码放到存储单元中。因此代码放到存储单元中。因此,字符型字符型数据和整型数据之间可以通用。数据和整型数据之间可以通用。97979898c1c1c2c2向字符变

16、量赋以整数:向字符变量赋以整数:main()main()char c1,c2;char c1,c2;c1=97;c2=98;c1=97;c2=98;printf(“printf(“%c%c%c%c”,c1,c2);”,c1,c2);运行结果:运行结果:a ba b 字符变量以字符或整数两种形式输出:字符变量以字符或整数两种形式输出:printf(“printf(“%c%d%c%c%d%c%d%d”,c1,c1,c2,c2);”,c1,c1,c2,c2);运行结果:运行结果:a 97 b 98a 97 b 98c1=97c1=97等效于等效于c1=ac1=ac c效果不同于效果不同于d d三、字

17、符串常量三、字符串常量 字符串常量是一对字符串常量是一对双引号双引号括起来的字符序括起来的字符序列,如:列,如:“abab”、“China”China”、“中国中国”。C C规定:规定:在每一个字符串的结尾加一个字在每一个字符串的结尾加一个字符串结束标志符串结束标志“0”0”,以便系统据此判断字符,以便系统据此判断字符串是否结束。因此每个字符串在内存中占用的串是否结束。因此每个字符串在内存中占用的字节数字节数=字符串长度字符串长度+1+1。a ab b0000中中国国(占占3 3个字节个字节)(占占5 5个字节个字节)字符串和字符常量的使用字符串和字符常量的使用 main()main()pri

18、ntf(“printf(“字符串的输出字符串的输出:”);:”);printf(“%s,%s printf(“%s,%snn”,“Computer”,“”,“Computer”,“计算计算机机”););printf(“printf(“字符常量和字符串的输出字符常量和字符串的输出:”);:”);printf(“printf(“%c%c,%s%sn”,n”,AA,”A”A”););运行结果:运行结果:字符串的输出字符串的输出:Computer,:Computer,计算机计算机 字符常量和字符串的输出字符常量和字符串的输出:A,A:A,A3.6 3.6 变量赋初值变量赋初值 程序中常需要对一些变量预

19、先设置初值。程序中常需要对一些变量预先设置初值。C C规定,可以在定义变量的同时使变量初始化。规定,可以在定义变量的同时使变量初始化。int a=3,b=4;int a=3,b=4;float f=12.345;float f=12.345;也可以使定义的变量的一部分赋初值。也可以使定义的变量的一部分赋初值。int a,b,c=3;int a,b,c=3;int a=3,b,c=3;int a=3,b,c=3;初始化不是在编译阶段完成的,而是在程初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋以初值。序运行时执行本函数时赋以初值。3.7 3.7 各类数值型数据间的混合运算各类数值型数

20、据间的混合运算 整型、字符型、单精度型和双精度型数据整型、字符型、单精度型和双精度型数据之间可以混合运算。例如之间可以混合运算。例如 10+a+1.5-8765.123410+a+1.5-8765.1234 =-8656.623400=-8656.623400 在进行运算时,不同类型的数据要先转换在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。成同一类型,然后进行运算。转换规则是:转换规则是:doublefloat long unsigned intchar高高低低表示转换的方向表示转换的方向表示系统内部必表示系统内部必做的转换做的转换3.8 3.8 算术运算符和算术表达式算术运

21、算符和算术表达式一、运算符一、运算符 运算符是在描述数据处理时用来表示各种运算符是在描述数据处理时用来表示各种运算的符号。例如,在描述数值运算时,经常运算的符号。例如,在描述数值运算时,经常用到加用到加(+)(+)减减(-)(-)乘乘(*)除除(/)(/)等算术运算符。等算术运算符。运算符必须有运算对象。运算符必须有运算对象。单目运算符:运算符的运算对象只有一个单目运算符:运算符的运算对象只有一个 双目运算符:运算符的运算对象有两个双目运算符:运算符的运算对象有两个 三目运算符:运算符的运算对象有三个三目运算符:运算符的运算对象有三个 C C语言的运算符有语言的运算符有3030多种。多种。二、

22、基本算术运算符二、基本算术运算符运算符名称对象数结合性+-正号运算符正号运算符负号运算符负号运算符单目单目自右向左自右向左(右结合性右结合性)+-*/%加法运算符加法运算符减法运算符减法运算符乘法运算符乘法运算符除法运算符除法运算符求余运算符求余运算符双目双目自左向右自左向右(左结合性左结合性)优先级别规定:优先级别规定:单目运算符单目运算符 优于优于 双目运算双目运算符符 *、/、%优于优于 +、-(各运算符的优先级与结合性请参看附录(各运算符的优先级与结合性请参看附录C C)三、算术表达式三、算术表达式算术表达式的类型是整型、单精度或双算术表达式的类型是整型、单精度或双精度实型。精度实型。

23、设设a=2,c=a,f=3.0a=2,c=a,f=3.0 a+2-aa+2-a*6/f+c%2 6/f+c%2=?(a=f)+5(a=f)+5=?若运算符两侧的数据类型不同,先自动进若运算符两侧的数据类型不同,先自动进行类型转换,然后进行运算。也可以使用强制行类型转换,然后进行运算。也可以使用强制类型转换运算符将一个表达式转换成所需类型类型转换运算符将一个表达式转换成所需类型如如 (float)a+20(float)a+20=22.0=22.01.01.06 6四、强制类型转换运算符四、强制类型转换运算符可以利用强制转换运算符转换变量或表达可以利用强制转换运算符转换变量或表达式的类型。式的类型

24、。一般形式:一般形式:(类型名)变量名或(表达式)(类型名)变量名或(表达式)main()main()float x;int i;float x;int i;x=32767.0;x=32767.0;i=i=(int)x(int)x%3;%3;print(“x=%f,i=%dn”,x,i);print(“x=%f,i=%dn”,x,i);运行结果:运行结果:x=32767.0,i=1x=32767.0,i=1注意:强制转注意:强制转换时,得到一个中换时,得到一个中间变量,原来变量间变量,原来变量的类型不变。的类型不变。五、增五、增1 1减减1 1运算符运算符运算符名称运算规则对象数结合性+-增增

25、1(1(前缀前缀)增增1(1(后缀后缀)减减1(1(前缀前缀)减减1(1(后缀后缀)先加先加1,1,后使用后使用先使用先使用,后加后加1 1先减先减1,1,后使用后使用先使用先使用,后减后减1 1单目单目自右向左自右向左(右结合性右结合性)增增1 1减减1 1运算符的优先级:运算符的优先级:增增1 1减减1 1运算符运算符 优于优于 双目算术运算符双目算术运算符 增增1 1减减1 1运算符运算符 同级同级 单目算术运算符单目算术运算符+,-+,-单目逻辑运算符单目逻辑运算符!,!,i+i+相当于相当于 (i+)(i+)设变量设变量i i5 5,求运算结果,求运算结果 j=i+j=i+j=+i

26、j=+i j=i-j=i-j=-i j=-i i+j i+j i-j i-j 运算结果:运算结果:j=5,i=6 j=6,i=6 j=5,i=4 j=4,i=4 (i+)+j (i-)-j“+”“+”“-”“-”运算符运算符需慎用需慎用3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式一、赋值运算符一、赋值运算符 赋值运算符的作用是将一个数据赋给一个赋值运算符的作用是将一个数据赋给一个变量。例如:变量。例如:a a=3 3。运算符名称对象数结合性赋值运算符赋值运算符双目双目自右向左自右向左(右结合性右结合性)二、类型转换二、类型转换 1.1.实型数据赋值给整型变量,实型数据赋值给整型

27、变量,舍弃舍弃实数的小实数的小数部分。数部分。如:如:int i=3.56 int i=3.56 (i=3)(i=3)2.2.整型数据赋给浮点型变量,数值不变并以整型数据赋给浮点型变量,数值不变并以浮点数形式存储到变量中。如浮点数形式存储到变量中。如 f=23 f=23 (f=23.000000)(f=23.000000)3.3.字符型数据赋给整型变量时,将字符数据字符型数据赋给整型变量时,将字符数据(8(8位位)放到整型变量低放到整型变量低8 8位中。位中。1 1 111 1101 1 111 1100 0 000 0000 0 000 000 1 1 111 1101 1 111 1101

28、 1 1 111 110 1 111 1101 1 111 1111 1 111 111 1 1 111 1101 1 111 110 c=376 c=376 c=376 c=376无符号变量无符号变量有符号变量有符号变量 4.4.将带符号的整型数据赋给长整型变量时,将带符号的整型数据赋给长整型变量时,要进行符号扩展。要进行符号扩展。5.5.将无符号整型数据赋给长整型变量时,只将无符号整型数据赋给长整型变量时,只需将高位补需将高位补0 0。0 0 00110001100 00 0000000 0 0 00110001101 1 00110001101 11 1111111 1 1 001100

29、0110三、复合的赋值运算符三、复合的赋值运算符 复合的赋值运算符是在赋值符复合的赋值运算符是在赋值符(=)(=)前加上其前加上其它运算符。例如它运算符。例如 a a+=+=3 a=a+33 a=a+3 x x*=y+8 x=xy+8 x=x*(y+8)(y+8)凡是二目运算符,都可以与赋值运算符一凡是二目运算符,都可以与赋值运算符一起组合成复合赋值符。起组合成复合赋值符。C C语言规定可以使用语言规定可以使用1010种种复合赋值运算符。即复合赋值运算符。即 +=+=,-=-=,*=,/=/=,%=%=,&=,=,|=,&=,=,|=四、赋值表达式四、赋值表达式 赋值表达式是由赋值运算符把变量

30、和表达赋值表达式是由赋值运算符把变量和表达式连接构成的。其式连接构成的。其一般形式为:一般形式为:变量变量=表达式表达式例如:例如:a=b+c+20a=b+c+20 a=b=c a=1 a=b=c a=1或或0 0 a=(b=5)a=b=5 a=(b=5)a=b=5注意:注意:赋值运算符按着赋值运算符按着“自自右而左右而左”的结合顺序的结合顺序3.10 3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式一、逗号运算符一、逗号运算符运算符运算符名称名称对象数对象数结合性结合性,逗号运算符逗号运算符双目双目自左到右自左到右 逗号运算符的优先级:逗号运算符的优先级:任何运算符任何运算符 优于优于 逗号运算符逗号运算符二、逗号表达式二、逗号表达式 逗号表达式是由逗号运算符连接表达式构逗号表达式是由逗号运算符连接表达式构成的。成的。一般形式:一般形式:表达式表达式1 1,表达式,表达式2 2 x=(a=3 x=(a=3,6 6*3)3)x=18x=18 x=a=3 x=a=3,6 6*3 3x=3,x=3,逗号表达式值逗号表达式值1818

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第三章数据类型、运算符与表达式课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|