c语言数据类型运算符表达式.ppt

上传人:M****1 文档编号:571136895 上传时间:2024-08-08 格式:PPT 页数:41 大小:686.50KB
返回 下载 相关 举报
c语言数据类型运算符表达式.ppt_第1页
第1页 / 共41页
c语言数据类型运算符表达式.ppt_第2页
第2页 / 共41页
c语言数据类型运算符表达式.ppt_第3页
第3页 / 共41页
c语言数据类型运算符表达式.ppt_第4页
第4页 / 共41页
c语言数据类型运算符表达式.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《c语言数据类型运算符表达式.ppt》由会员分享,可在线阅读,更多相关《c语言数据类型运算符表达式.ppt(41页珍藏版)》请在金锄头文库上搜索。

1、第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式第第三章三章 数据数据类型型、运算符与表达式、运算符与表达式1.数据类型概念数据类型概念2.常量与变量常量与变量3.三种常用基本数据类型三种常用基本数据类型4.算术运算与赋值运算算术运算与赋值运算5.逗号运算逗号运算6.混合运算与数据类型转换混合运算与数据类型转换1第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式C语言的基本元素语言的基本元素1. 符号集符号集(字符集字符集)大写字母、小写字母、阿位伯数字、下划线、标点符号和运算符大写字母、小写字母、阿位伯数字、下划线、标点符号和运算符 2. 标识符标识符(区分大小写区

2、分大小写) P 39用来标识用来标识常量常量、变量变量、函数函数及及文件名字文件名字的字符系列的字符系列标识符的标识符的构成规则构成规则:(不能使用关键字不能使用关键字)以字母以字母(大小写均可大小写均可)或以下划线开头或以下划线开头随后可跟若干个随后可跟若干个(包括包括0个个)字母、数字、下划数字母、数字、下划数标识符的长度各个系统不同,最好不要超过标识符的长度各个系统不同,最好不要超过8个字符个字符例:判断下列标识符号合法性sum SUM M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.

3、John3days#33charab$123区分大小写区分大小写2第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式3. 关键字关键字(P365) 也称保留字,它是也称保留字,它是C C语言中具有特定含义,专门用做语言中具有特定含义,专门用做语言特定成分的标识符。语言特定成分的标识符。 main , int , char, float ,struct 注意注意:所有关键字都有固定的意义,不能用作其它所有关键字都有固定的意义,不能用作其它所有关键字都必须小写所有关键字都必须小写如如else 和和 ELSE是代表不同的意义是代表不同的意义 3第三章第三章 数据类型、运算符、表达式数据类

4、型、运算符、表达式C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void字符类型字符类型char枚举类型枚举类型enum整整 型型实型实型单精度型单精度型float双精度型双精度型double数组数组结构体结构体struct共用体共用体union短整型短整型short长整型长整型long整型整型int数据类型决定:数据类型决定:1. 数据占内存字节数数据占内存字节数2. 数据取值范围数据取值范围3. 其上可进行的操作其上可进行的操作C的数据类型的数据类型4第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式一般用大写字母一般用大写字母是宏定义预处理

5、命令,不是是宏定义预处理命令,不是C C语句语句直接常量直接常量: :整型常量整型常量 实型常量实型常量 字符常量字符常量 字符串常量字符串常量如如 #define PRICE 30常量常量 P37P37定义:程序运行时其值不能改变的量(即常数)定义:程序运行时其值不能改变的量(即常数)分类分类: :符号常量符号常量: :用用标识符标识符代表常量代表常量定义格式:定义格式: #define#define 符号常量符号常量 常量常量例例 符号常量举例符号常量举例(ch2_1.c)#include #define PRICE 30void main() int num,total; num=10;

6、 total=num*PRICE; printf(total=%d,total);运行结果:运行结果:total=300使用符号常量的好处:使用符号常量的好处: 1 1)含义清楚)含义清楚 2 2)一改全改)一改全改6第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式&整型常量(整常数)整型常量(整常数) P40P40三种形式:三种形式:十进制整数:由数字十进制整数:由数字0-90-9和正负号表示和正负号表示. .如如 123,-456,0123,-456,0八进制整数:由数字八进制整数:由数字0 0开头开头, ,后跟数字后跟数字0-70-7表示表示. .如如0123,011012

7、3,011十六进制整数:由十六进制整数:由0x0x开头开头, ,后跟后跟0-9,a-f,A-F0-9,a-f,A-F表示表示. . 如如0x123,0Xff0x123,0Xff问题:0123 = ( )100x123 = ( )100Xff = ( )1083291255问题:0123 = ( )100x123 = ( )100Xff = ( )107第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式整型数据在内存中的存放形式整型数据在内存中的存放形式: P41: P41 数据在内存中以二进制的数据在内存中以二进制的补码补码表示。表示。 整型数据是占整型数据是占2 2个字节,个字节

8、,1616位。位。如:如:intint i=10,j=-10; i=10,j=-10; (10)10=(1010)2 i i i i 100 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0j jj j -101 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0一个正整数的补一个正整数的补码和原码相同。码和原码相同。一个负整数的补码是该数绝对值一个负整数的补码是该数绝对值的二进制按位取反再加的二进制按位取反再加1 1。符符号号位位8第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式数据类型名说明Visual C+ 6.0环境Turbo C2.0环境字节取值范围字

9、节取值范围 short int短整型2 -32768327672 -3276832767 signed short int带符号短整型2 -32768327672 -3276832767unsigned short int无符号短整型2 0655352 065535 int整型4-214748364821474836472 -3276832767signed int带符号整型4-214748364821474836472 -3276832767unsigned int无符号整型4 042949672952 065535long int长整型4-214748364821474836474-214

10、74836482147483647signed long int带符号长整型4-214748364821474836474-21474836482147483647unsigned long int 无符号长整型4042949672954 042949672959第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式整型变量的定义C程序中用到的所有变量都必须在程序中定义,即:强制类型定义如: int a,b 指定变量a,b为整型unsigned short c,d 指定变量c,d为无符号短整型long e,f 指定变量e,f为长整型 10第三章第三章 数据类型、运算符、表达式数据类型、

11、运算符、表达式#include void main()int a,b,c,d;unsigned u;a=12;b=24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);11第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式整型数据的溢出#include12第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式&实型常量(实数或浮点数)实型常量(实数或浮点数) P45P45表示形式:表示形式:十进制数形式:(必须有小数点)十进制数形式:(必须有小数点) 如如0.123, .123, 123.0, 0.0, 123.0.123, .1

12、23, 123.0, 0.0, 123.指数形式:(指数形式:(e e或或E E之前必须有数字;指数必须为整数)之前必须有数字;指数必须为整数) 如如12.312.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5, e3,e0.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5, e3,e0.3实型常量的类型实型常量的类型默认默认doubledouble型型在在实型常量后加字母实型常量后加字母f f或或F F,认为它是认为它是floatfloat型型e-5 , 1.2E-3.5, e3,e0.3e-5 , 1.2E-3.5, e3,e0.313第三章第

13、三章 数据类型、运算符、表达式数据类型、运算符、表达式&字符常量字符常量 P48P48定义定义: :用用单引号单引号括起来的单个括起来的单个普通字符普通字符或或转义字符转义字符. . 字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码码值值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 101 -A 102 -B 376 - x61 -a 60 -0 483 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n

14、101转义字符转义字符: :反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示例 转义字符举例#include void main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);运行结果:(屏幕显示)A B CI say:”How are you?”C ProgramTurbo C例 #include void main() printf(“Yb=n”); 运行结果:屏幕显示:=14第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式字

15、符常量与字符串常量不同字符常量与字符串常量不同&字符串常量字符串常量 P52P52定义:用双引号定义:用双引号(“”)(“”)括起来的字符序列括起来的字符序列存储:存储:每个字符串尾每个字符串尾自动自动加一个加一个 0 0 作为字作为字符串结束标志符串结束标志h e l l o 0例例 字符串字符串“hello”hello”在内存中在内存中a a 0例例 a“a”例例 空串空串 “”0例: char ch; ch=“A”; 例: char ch; ch=A; 15第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1,

16、b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数变变 量量概念:其值可以改变的量概念:其值可以改变的量变量名变量名与与变量值变量值变量定义的一般格式:变量定义的一般格式: 数据类型数据类型 变量变量1 1,变量,变量2 2,变量,变量n;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;变量的使用:变量的使用:先定义,后使用先定义,后使用变量

17、定义位置:变量定义位置:一般一般放在函数开头放在函数开头#include void main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可执行语句16第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式 例如:例如: intint a=3 a=3; 1 1、变量代表计算机内存中的某一存储空间、变量代表计算机内存中的某一存储空间, , 该存储空间中存放的数据就是变量的值。该存储空间中存放的数据就是变量的值。a 3变量名变量值存储单元(地址) 2 2、在同一程序块中,每个变量都有唯一

18、的名字,、在同一程序块中,每个变量都有唯一的名字, 不能被重复定义。不能被重复定义。 3 3、使用变量时必须、使用变量时必须“先定义,后使用先定义,后使用”。17第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式&整型变量整型变量 P41P41占字节数随机器不同而不同占字节数随机器不同而不同, , shortintlongshortintlong&实型变量实型变量floatfloat:占占4 4字节,提供字节,提供7 7位有效数字位有效数字doubledouble:占占8 8字节,提供字节,提供1515- -1616位有效数字位有效数字&字符型变量字符型变量字符变量存放字符字符变量

19、存放字符ASCIIASCII码码一个字符变量在内存中占一个字符变量在内存中占一个字节一个字节。charchar与与intint数据间可进行算术运算数据间可进行算术运算例 float a;a=111111.111; /* a=111111.1*/double b;b=111111.111; /* b=111111.111*/例例 a=D; /* a=68; */a=D; /* a=68; */ x=A+5; /* x=65+5; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */ s=!+G /* s=33+71; */没有没有字符串变量字符串变量,用字符数

20、组存放,用字符数组存放例 3.2#include void main( ) int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d”,c,d); 例3.3#include void main( ) int a,b; a=32767; b=a+1; printf(“a=%d,b=%d”,a,b); 18第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式例 3.6 3.7#include void main() int i; char c1,c2,c3,c4; c1=b; c3=97; i

21、=a; c2=i-32; c4=c1-34; printf(%c,%c,%c,%c,%cn,c1,c2,c3,c4,i); printf(%d,%d,%d,%d,%dn,c1,c2,c3,c4,i); 字符形式输出时,首先将字符形式输出时,首先将ASC码转换成相应字符。码转换成相应字符。整数形式输出时,直接将整数形式输出时,直接将ASC码作为整数输出。码作为整数输出。运行结果:运行结果:b,A,a,a98,65,97,64,974.字符数据可以以字符字符数据可以以字符形式输出,也可以用整形式输出,也可以用整数形式输出。数形式输出。1.将一个字符常量存放到一个字符变量中,是将该将一个字符常量存放

22、到一个字符变量中,是将该字符的相应的字符的相应的ASC码码存放在存储单元中。存放在存储单元中。2.字符数据与整型数据可以相互赋值。字符数据与整型数据可以相互赋值。3.允许对字符数据进行算术运算,此时就允许对字符数据进行算术运算,此时就是对它们的是对它们的ASC码值进行算术运算。码值进行算术运算。19第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式 #include #define PRICE 12.5 void main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“

23、total=%f,ch1=%cn”,total,ch1); 宏定义变量定义输出结果运行结果:total=37.500000, ch1=d20第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式作业:作业: 3.6 3.7 3.821第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式 运算符和表达式概述运算符和表达式概述C运运算算符符算术运算符算术运算符:(:(+ - * / % + -+ - * / % + -)关系运算符:(关系运算符:( = != = !=)逻辑运算符:(!逻辑运算符:(! & |& |)位运算符位运算符 :(:( | & | &)赋值运算符赋值运算符

24、:(:(= = 及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符逗号运算符:(:(, ,)指针运算符:(指针运算符:(* * & &)求字节数求字节数 :(:(sizeofsizeof)强制类型转换强制类型转换:(类型):(类型)分量运算符:(分量运算符:(. -. -)下标运算符:(下标运算符:()其它其它 :(函数调用运算符:(函数调用运算符( )( ))22第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式学习运算符应学习运算符应注意注意:运算符功能运算符功能与运算量关系与运算量关系要求运算量个数要求运算量个数要求运算量类型要求运算量类型运算符优先级别运算

25、符优先级别结合方向结合方向结果的类型结果的类型23第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式算术运算符和表达式算术运算符和表达式基本算术运算符:基本算术运算符: + + - - * / * / % %( (模运算符模运算符) )结合方向:从左向右结合方向:从左向右优先级:优先级: - - -* / %* / % - - + -+ - (2) (3) (4) (2) (3) (4)说明:说明:“-”“-”可为可为单目单目运算符时运算符时, ,右结合性右结合性两整数相除,结果为整数两整数相除,结果为整数% %要求两侧均为要求两侧均为整型数据整型数据例 5/2 = -5/2.0

26、=例 5%2 = -5%2 = 1%-10 = 5%1 = 5.5%22 -2.51 -110()符号由被除数决定符号由被除数决定24第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式 算术运算符举例算术运算符举例 例:设:例:设: intint a=5,b=2; float c=5.0,d=2.0; a=5,b=2; float c=5.0,d=2.0; 求求a/ba/b、a%ba%b、c/dc/d、a+a%b/ba+a%b/b、a%da%d 解:解:a/b=2a/b=2、a%b=1a%b=1、c/d=2.5c/d=2.5、a+a%b/b=5a+a%b/b=5、a%da%d非法非

27、法设:设: intint a=5,b=3 a=5,b=3,c=1,d=2c=1,d=2,e=6,e=6,求求 a+b-c/d+e%da+b-c/d+e%d解:解: a+b-c/d+e%da+b-c/d+e%d 5+3-0+05+3-0+0 8 825第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式自增、自减运算符自增、自减运算符+ -+ -作用:使变量值加作用:使变量值加1 1或减或减1 1种类:种类:前置前置 +i, -i (+i, -i (先执行先执行i i+1+1或或i-1i-1,再使用再使用i i值)值)后置后置 i+,i- (i+,i- (先使用先使用i i值值, ,再

28、执行再执行i i+1+1或或i-1i-1)例例 j=3; k=+j; j=3; k=+j; j=3; k=j+; j=3; k=j+; j=3; j=3; printf(“%d”,+jprintf(“%d”,+j); ); j=3; j=3; printf(“%d”,jprintf(“%d”,j+); +); a=3;b=5;c=(+a)*b; a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; a=3;b=5;c=(a+)*b; /k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=426第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式自

29、增、自减运算符自增、自减运算符+ -+ -作用:使变量值加作用:使变量值加1 1或减或减1 1种类:种类:前置前置 +i, -i (+i, -i (先执行先执行i i+1+1或或i-1i-1,再使用再使用i i值)值)后置后置 i+,i- (i+,i- (先使用先使用i i值值, ,再执行再执行i i+1+1或或i-1i-1)说明:说明:+ - + - 不能用于常量和表达式不能用于常量和表达式, ,如如5+5+,( (a+b)+a+b)+ -+ -结合方向:结合方向: 自右向左自右向左优先级:优先级: + - - + - - -* / % -+ -* / % -+ - (2) (3) (4)(

30、2) (3) (4)例例 - -i+ i+ -(i+) -(i+) i=3; i=3; printf(“%d”,-iprintf(“%d”,-i+); +); /-3/-3 例例 - -i+i+ i=3; i=3; printf(“%d”,-iprintf(“%d”,-i+); +); 27第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式例 自增自减运算 #include void main() int i=8; printf(%dn,+i); printf(%dn,-i); printf(%dn,i+); printf(%dn,i-); printf(%dn,-i+); pri

31、ntf(%dn,-i-); printf(%dn,i); 运行结果:运行结果:9 98 88 89 9-8-8-9-98 828第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式赋值运算符和表达式赋值运算符和表达式l简单赋值运算符简单赋值运算符符号:符号: = =格式:格式: 变量标识符变量标识符= =表达式表达式作用:将一个数据(常量或表达式)赋给一个作用:将一个数据(常量或表达式)赋给一个变量变量l赋值表达式的值与变量值相等赋值表达式的值与变量值相等,且可嵌套且可嵌套例例 float f; int i; i=10; f=i;则则 f=10.0例例 int i; i=2.56;

32、/结果结果i=2;例例: a=b=c=5: a=b=c=5 a=(b=5) a=(b=5) a=5+(c=6) a=5+(c=6) a=(b=4)+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) a=(b=10)/(c=2)/表达式值为表达式值为5 5,a,b,ca,b,c值为值为5 5/ b=5;a=5/ b=5;a=5/表达式值表达式值1111,c=6,a=11c=6,a=11/表达式值表达式值1010,a=10,b=4,c=6a=10,b=4,c=6/表达式值表达式值5 5,a=5,b=10,c=2a=5,b=10,c=2l 赋值转换赋值转换规则规则: 使赋值号右边

33、表达式值使赋值号右边表达式值自动自动转换成其左转换成其左边变量的类型边变量的类型29第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式l 说明说明: :结合方向:结合方向:自右向左自右向左优先级优先级: 14左侧必须是变量,不能是左侧必须是变量,不能是常量或表达式常量或表达式l 复合赋值运算符复合赋值运算符种类种类:+= -= *= /= %=+= -= *= /= %= = = = &= = |= &= = |=含义:含义: exp1 op= exp2exp1 op= exp2 exp1 = exp1 op exp2exp1 = exp1 op exp2a+=3a=a+3x*=y

34、+8x=x*(y+8)x%=3x=x%3例例: : a=12; P64 a=12; P64 a+=a-=a*a a+=a-=a*a例例: : intint a=2; a=2; a%=4-1; a%=4-1; a+=a*=a=a*=3; a+=a*=a=a*=3; 例例: :3=x-2*y; a+b=3; 27230第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式将将实实型型数数据据(包包括括单单、双双精精度度)赋赋给给整整型型变变量量时时,舍舍弃弃实实型型的的小小数部分。数部分。将将整整型型数数据据赋赋给给单单、双双精精度度变变量量时时,数数值值不不变变,但但以以浮浮点点数数形形

35、式存储到变量中。式存储到变量中。#include #include void main()void main() intint i; i; float f; float f; i=6.32; i=6.32; f=45; f=45; printf(%dprintf(%d %fn,i,f); %fn,i,f); 运行结果:运行结果:6 45.0000006 45.000000赋值结果与类型转换赋值结果与类型转换 P60P6031第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式#include #include void main()void main() unsigned a; un

36、signed a; intint b=-1; b=-1; a=b; a=b; printf(%dprintf(%d- %un,b,a);- %un,b,a); a=4294967294u; a=4294967294u; b=a; b=a; printf(%dprintf(%d- %un,b,a);- %un,b,a); 长长度度相相同同的的有有符符号号与与无无符符号号整整型型数数间间,原原样样赋赋值值(但但数数值值有有时时会会有有变化)。变化)。 运行结果:运行结果:-1-4294967295-1-429496729511 11 11 11 11 11 11 11 11 11 11 11 11

37、 11 11 11a11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11b00补码反码原码11101000110010-2-4294967294-2-429496729432第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式 char char、intint、longlong等等类型的转换类型的转换“短短”数据赋给数据赋给“长长”变量变量符号扩展:符号扩展:若最高位为若最高位为1 1(负数),则变量高字节为补(负数),则变量高字节为补1 1;分之,补;分之,补0 0。#include #include void main() void ma

38、in() char c; char c; intint i; i; c=43; i=c; c=43; i=c; printf(iprintf(i=%dn,i);=%dn,i); c=376; i=c; c=376; i=c; printf(iprintf(i=%dn,i);=%dn,i); 43号字符+ 5300 10 10 1100 00 00 00 00 10 10 11 i254号字符 37611 11 11 1011 11 11 11 11 11 11 10 i运行结果:运行结果:i=43i=43i=-2i=-233第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式 cha

39、r char、intint、longlong等等类型的转换类型的转换“长长”数据赋给数据赋给“短短”变量变量只将数据的低字节位原封不动只将数据的低字节位原封不动送到变量中(数据有可能有差送到变量中(数据有可能有差错)错)#include #include void main()void main() short short intint i; i; long L=6324232L; long L=6324232L; i=L; i=L; printf(iprintf(i=%d,L=%dn,i,L);=%d,L=%dn,i,L); 运行结果:i=-32760,L=6324232L=63242320

40、 0 00 00 00 01 10 00 00 10 00 00 00 00 00 10 00 10 00 00 00 00 00 10 00 i=-3276034第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式逗号运算符和表达式逗号运算符和表达式 P 65P 65形式:形式:表达式表达式1 1, ,表达式表达式2 2, ,表达式表达式n n结合性结合性: :从左向右从左向右优先级优先级: : 1515逗号表达式逗号表达式的值:的值:等于表达式等于表达式n n的值的值用途:用途:常用于循环常用于循环forfor语句中语句中例例 a=3*5,a*4 a=3*5,a*4,a+5例例

41、x=(a=3,6*3) x=a=3,6*a例例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表达式值表达式值60/a=15,表达式值表达式值20/赋值表达式,表达式值赋值表达式,表达式值18,x=18/逗号表达式逗号表达式,表达式值表达式值18,x=3/1,2,3/3,2,335第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式例例:#include void main() int x,y=7; int z=4; x=(y=y+6,y/z); printf(x=%dn,x)

42、;运行结果:x=3例例:#include void main() int a=1; printf(“结果结果=%dn”,(a=3*a,3*a);运行结果:结果=936第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式不同类型数据间的转换不同类型数据间的转换 P54P54隐式转换隐式转换( (自动类型转换自动类型转换) )什么情况下发生什么情况下发生运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时赋值转换赋值转换-把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时输出转换输出转换-输出时转换成指定的输出格式输出时转换成指定的输出格式函数调用转换函数调用转换

43、-实参与形参类型不一致时转换实参与形参类型不一致时转换运算转换规则运算转换规则: :不同类型数据运算时先不同类型数据运算时先自动自动转换成同一类型转换成同一类型37第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式doublefloatlongunsignedintchar,short低低高高说明说明:必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换例例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubled

44、oubledoubledoubledoubledouble10+a +i*f - d/l例例 int i; float f; double d; long l;1.float1.float型数据在运算时一律先转换型数据在运算时一律先转换成成doubledouble型型; ;2.2.不同类型进行混合运算时不同类型进行混合运算时, ,按照类按照类型级别由低到高的顺序转换型级别由低到高的顺序转换. .38第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式显式转换(强制转换)显式转换(强制转换) P 56P 56一般形式:一般形式:(类型名类型名)(表达式)表达式)例例 ( (int)(x

45、+yint)(x+y) ) ( (int)x+yint)x+y (double)(3/2) (double)(3/2) (int)3.6 (int)3.6 说明:强制转换得到所需类型的中间变量,原变说明:强制转换得到所需类型的中间变量,原变量类型不变量类型不变例 3.8#include void main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生较高类型向较低类型转换时可能发生39第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式作业:作业: 3.9 3.10 3.12上机题:上机题:3.740第三章第三章 数据类型、运算符、表达式数据类型、运算符、表达式 第三章第三章 结束结束41

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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