第3章数据类型表达式

上传人:桔**** 文档编号:578403809 上传时间:2024-08-24 格式:PPT 页数:55 大小:887.54KB
返回 下载 相关 举报
第3章数据类型表达式_第1页
第1页 / 共55页
第3章数据类型表达式_第2页
第2页 / 共55页
第3章数据类型表达式_第3页
第3页 / 共55页
第3章数据类型表达式_第4页
第4页 / 共55页
第3章数据类型表达式_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《第3章数据类型表达式》由会员分享,可在线阅读,更多相关《第3章数据类型表达式(55页珍藏版)》请在金锄头文库上搜索。

1、第第3章章 最简单的最简单的C程序设计(程序设计(1)数据类型、运算符与表达式数据类型、运算符与表达式一、一、C语言的保留字和标识符语言的保留字和标识符二、基本数据类型二、基本数据类型 1、常量和变量的概念、常量和变量的概念 2、整型、浮点型、字符型、字符串、整型、浮点型、字符型、字符串 3、变量的初始化、变量的初始化 三、算术运算符和算术表达式三、算术运算符和算术表达式四、自增、自减运算符四、自增、自减运算符五、赋值运算符和赋值表达式五、赋值运算符和赋值表达式六、表达式中不同数据类型的混合运算六、表达式中不同数据类型的混合运算七、补充:逗号运算符和逗号表达式七、补充:逗号运算符和逗号表达式一

2、、一、C语言的保留字和标识符语言的保留字和标识符保留字保留字:C C语言规定的具有特定意义的字符语言规定的具有特定意义的字符串,也称串,也称关键字关键字。C C语言的保留字(关键字)共有语言的保留字(关键字)共有3232个个(C89C89)教材教材365365页页 附录附录B CB C语言中的关键字语言中的关键字( (第第3 3版版) ) C C语言的保留字(关键字)共有语言的保留字(关键字)共有3737个个(C99C99)教材教材378378页页 附录附录C CC C语言中的关键字语言中的关键字( (第第4 4版版) ) 标识符标识符:用来标识:用来标识变量名变量名、符号常量名符号常量名、数

3、组数组名名、类型名、类型名、函数名函数名等的等的有效字符序列有效字符序列。C语言对标识符的规定:语言对标识符的规定:(1)只能由只能由字母字母、数字数字、下划线下划线组成,且第一个字母必须是组成,且第一个字母必须是字母字母或或下划线下划线(2)长度:)长度:在在TC中最多允许中最多允许32个字符,建议不要超过个字符,建议不要超过8个个VC:255例:例:如果系统规定标识符长度为如果系统规定标识符长度为8,那么,那么x1234567ABC和和x1234567XY会被视为同一标识符。会被视为同一标识符。标识符中应注意的问题:标识符中应注意的问题:标识符命名时应有意义,尽量做到标识符命名时应有意义,

4、尽量做到见名知义见名知义。 如如longth用来表示长度,用来表示长度,time用来表示时间,用来表示时间,PI用来用来表示圆周率。表示圆周率。在在C语言中,标识符语言中,标识符大小写敏感大小写敏感。 如如ABC、aBC、abc分别代表分别代表3种不同的标识符种不同的标识符标识符不能与标识符不能与C语言的保留字、系统标准库函语言的保留字、系统标准库函数同名。数同名。为合法标识符为合法标识符 yes? 123 go to a_80% if program to_ _to file_2 ab1_c3为非法法标识符为非法法标识符(含有不合法字符含有不合法字符“?”)(出现非法字符出现非法字符“”)(

5、标识符中不允许有空格标识符中不允许有空格)(第一个字符不能为数字第一个字符不能为数字)(与关键字相同)(与关键字相同) 整型整型字符型字符型枚举类型枚举类型浮点型(实型)浮点型(实型)单精度型单精度型双精度型双精度型指针类型指针类型空类型空类型基本类型基本类型构造类型构造类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型数据类型数据类型二、基本数据类型(第二、基本数据类型(第3版版 C89) 整型整型类型浮点型浮点型(实型)(实型)单精度浮点型单精度浮点型(float)(float)双精度浮点型双精度浮点型(double)(double)指针类型指针类型(*)(*)空类型空类型(vo

6、id)(void)基本类型基本类型数据类型数据类型二、基本数据类型二、基本数据类型(第(第4版版 C99)派生类型派生类型数组类型数组类型( )( )结构体类型结构体类型( (structstruct) )共用体类型共用体类型(union)(union)函数类型函数类型枚举类型枚举类型( (enumenum) ) 复数浮点型复数浮点型( (float_complex,double_complex,lfloat_complex,double_complex,longong long_complelong_comple) )基本整型基本整型( (intint) )短整型短整型(short (sho

7、rt intint) )长整型长整型(long (long intint) )* *双长整型双长整型(long long (long long intint) )字符型字符型(char)(char)* *布尔型布尔型( (boolbool) )1、常量和变量的概念、常量和变量的概念常量常量:在:在程序执行的整个过程程序执行的整个过程中,中,其值不能改变其值不能改变 的量。的量。字面常量或直接常量:直接以值的形式出现的常字面常量或直接常量:直接以值的形式出现的常量,如量,如100(100(整型常量整型常量) ),0.5(0.5(实型常量实型常量), ), a a(字符常字符常量量), ”boyb

8、oy” (字符串常量字符串常量). . 符号常量:用标识符表示的常量符号常量:用标识符表示的常量#define PRICE 30void main() int num,total; num=10; total = num * PRICE; printf(“total= %d”,total);定义符号常量定义符号常量PRICE,代表,代表30哪些是保留字?哪些是保留字?哪些是标识符?哪些是标识符? 变量变量:在程序执行的过程中,:在程序执行的过程中,其值可以改变的量。其值可以改变的量。 如如 y=x+5;其中其中x和和y都是变量,都是变量,y随着随着x的值不同而不同的值不同而不同注意:注意: 变

9、量代表内存中具有特定属性的一个变量代表内存中具有特定属性的一个存储单元存储单元, 用来存放数据,即变量的值。用来存放数据,即变量的值。 x10存储单元,即变量存储单元,即变量变量名:变量名:存储空间的名字,存储空间的名字,通过它对存储空间通过它对存储空间进行访问,是一个进行访问,是一个标识符,标识符,通常用通常用小小写字母写字母表示表示变量的值:变量的值:存储单元中存存储单元中存储的数值。储的数值。变量变量x的值是的值是10变量类型:变量类型:决定存储单元的大小决定存储单元的大小 整型变量、实型变量、字符型变量等整型变量、实型变量、字符型变量等变量的特征:变量的特征:变量名、变量的值、变量的类

10、型变量名、变量的值、变量的类型注意注意:C语言规定语言规定:变量必须先定义,后使用变量必须先定义,后使用。变量的定义语句:变量的定义语句:类型说明符类型说明符 变量名变量名1 1,变量名变量名2 2, ;例:例: int x; 定义整型变量定义整型变量x x int a,b; 定义两个整型变量定义两个整型变量a,ba,b类型说明符和变量名之间要类型说明符和变量名之间要用空格隔开用空格隔开注意:以下变量定义形式是错误的注意:以下变量定义形式是错误的 intint a a, ,intint b; b; intint a a; ;b b; ;2、整型、整型1)整型常量)整型常量十进制整型十进制整型:

11、能出现数字:能出现数字09,可带正负号,可带正负号 如:如:0,11,95,-2八进制整型八进制整型:以:以数字数字0开头的数字串,能出现数字开头的数字串,能出现数字07 如:如:011(十进制(十进制9),),0111(十进制(十进制73)十六进制整型十六进制整型:以:以0x开头的,能出现数字开头的,能出现数字09,字,字母母af或或AF 如:如:0x11(十进制十进制17),0xa5(十进制十进制165)下列常量错在哪儿?下列常量错在哪儿? 028、123a 、o122 2)整型变量)整型变量变量类型名变量类型名变量类型变量类型所占字节数所占字节数数的范围数的范围基本整型基本整型intin

12、t2 24 4-32768-327683276732767-2147483648-214748364821474836472147483647短整型短整型short short intint 2 2-32768-327683276732767长整型长整型long long intint 4 4-2147483648-214748364821474836472147483647无符号基本型无符号基本型unsigned unsigned intint 0 065535655350 042949672954294967295无符号短整型无符号短整型unsigned unsigned shortint

13、shortint 2 20 06553565535无符号长整型无符号长整型unsigned unsigned longintlongint 4 40 042949672954294967295说明说明: :数据类型所占字节数数据类型所占字节数随编译系统的不同而不同随编译系统的不同而不同2 24 4双长型双长型 long longint 8-263(263-1)无符号双长型无符号双长型unsigned long longint 80(264-1)整型数据在内存中以补码表示整型数据在内存中以补码表示对有符号数,最高位有符号数,最高位为符号位,其余位符号位,其余位为数数值位位eg:用一字:用一字节表

14、示有符号数:表示有符号数:原码反码补码+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000数的范围0111111111111111(-127+127)0111111110000000(-127+127)0111111110000000(-128+127)对无符号数对无符号数unsigned,全部位都为数值,全部位都为数值整型变量举例:整型变量举例:为了保存年龄:为了保存年龄:short age;或或unsigned short age;in

15、t age;long age;为了保存一个城市人口:为了保存一个城市人口:int people; 或或long people;unsinged people;unsigned long people;占内存大一些占内存大一些要保存全球的人口:要保存全球的人口:int count;60亿,超出亿,超出int或或long类型的范类型的范围围整型变量举例:整型变量举例:#include void main( ) int i,j; /*/*定义整型变量定义整型变量i,j i,j*/*/ i=1; /*/*分别给整型变量分别给整型变量i,j i,j赋值赋值* */ / j=2; printf(“i=%d

16、,j=%d”,i,j); /*/*按十进制格式输出整型变量按十进制格式输出整型变量i,j i,j的值的值* */ / 注意:注意:整型常量也分整型常量也分类别 如:如:100,是,是int型常量型常量 123u, 89U,是,是unsigned型常量型常量 0l,34L,是,是long int型常量型常量 参考参考P41 整型整型变量的分量的分类(第(第3版)版) 参考参考P44 整型整型变量的分量的分类(第(第4版)版)3、浮点型(实型)、浮点型(实型)十进制小数十进制小数形式:形式:由由数字数字与与小数点小数点组成(组成(必须有必须有小数点小数点)。 如如 1.23,-123.,0.012

17、3,.0,0. 指数指数形式,如形式,如123e3或或123E3都代表都代表123103注意字母注意字母e或或E之前必须有数字,后面必须是整数之前必须有数字,后面必须是整数1)浮点型常量)浮点型常量 E-5,.1234e1.2,6.5E为合法的浮点型常量为合法的浮点型常量为非法的浮点型常量为非法的浮点型常量如:如:1E-5,.1234e12,2.e0,6.5E-152)浮点型变量)浮点型变量变量类型名变量类型名变量类型变量类型所占字节所占字节数数数的范围数的范围有效数字有效数字单精度浮点型单精度浮点型float4-3.4e-383.4e3867双精度浮点型双精度浮点型长双精度浮点长双精度浮点型

18、型doublelong double8816-1.7e-3081.7e308-1.7e-3081.7e308-1.2e-49321.2e4932151615161819实型变量举例:实型变量举例:保存商品的单价,总价:保存商品的单价,总价:float price,total;保存精确的计算结果,精确到保存精确的计算结果,精确到10位有效数字:位有效数字:double result;浮点型变量举例:浮点型变量举例:#include void main( ) float a,b; /*/*定义单精度浮点型变量定义单精度浮点型变量a,ba,b*/*/ double c; /*/*定义双精度浮点型变量

19、定义双精度浮点型变量c*/c*/ a=123.45; /*/*分别给浮点型变量分别给浮点型变量a,b,ca,b,c赋值赋值* */ / b=32.56; c=123.45; printf(“a=%f b=%f c=%f”,a,b,c); /*/*输出输出a,b,ca,b,c的值的值* */ /注意:注意:浮点型常量也分浮点型常量也分类别:如:如:123.3,是,是double类型型 34.5f,8.9F,是,是float类型型4 4、字符型、字符型1 1)字符常量字符常量:分为两类:分为两类u用单撇号括起来的一个字符用单撇号括起来的一个字符 如如 : a a, 9 9, (空格)(空格)是合法

20、字符常量是合法字符常量 ”a a”, 9999 是非法字符常量是非法字符常量u转义字符转义字符:以以以以 (反斜杠)开头的特殊形式的字符。(反斜杠)开头的特殊形式的字符。(反斜杠)开头的特殊形式的字符。(反斜杠)开头的特殊形式的字符。 如:如: n , ,r ,123 ,x3b转义字符转义字符 功功 能能 n 回车换行符,光标移到下一行行首回车换行符,光标移到下一行行首 r 回车不换行,光标移动到本行行首回车不换行,光标移动到本行行首 t 横向跳格横向跳格(8位为一格,光标跳到下一格起始位置,如位为一格,光标跳到下一格起始位置,如第第9或或17位等位等) b 退一格,光标往左移动一格退一格,光

21、标往左移动一格 f 走纸换页走纸换页 ,将当前位置移到下页开头将当前位置移到下页开头 用于输出反斜杠字符用于输出反斜杠字符“” 用于输出单引号字符用于输出单引号字符“” ” 用于输出双引号字符用于输出双引号字符“” ddd 1到到3位位八进制数八进制数ddd对应的对应的ASCII码字符码字符 xhh 1到到2位位十六进制十六进制数数hh对应的对应的ASCII码字符码字符 a 警告,产生声音或视觉信号警告,产生声音或视觉信号 ? 一个问号一个问号(?),输出此字符,输出此字符 v 垂直制表符,将当前位置移到下一个垂直制表对齐点垂直制表符,将当前位置移到下一个垂直制表对齐点课堂练习课堂练习183

22、w “b” x1b正确的字符常量是:正确的字符常量是:正确的是:正确的是:x1b不能有不能有8没有这样没有这样的转义字的转义字符符字符常量不用字符常量不用双引号双引号2 2)字符变量字符变量:charchar,占,占1 1个字节个字节空间,只能存放空间,只能存放一个字符。一个字符。存储特点:存储特点: 在字符变量中实际上存储的是字符的在字符变量中实际上存储的是字符的ASCIIASCII码,码,其存储形式与整数的存储形式相同。其存储形式与整数的存储形式相同。例如例如:char c1char c1,c2c2; c2=c2=a a;定义了字符型变量定义了字符型变量c1,c2,把,把a a存放到存放到

23、c2中中如如 A A6565,B B 66,Z 90 a a9797,b98, z122 0 048 , 48 , 149, 957注意:注意: 1.1.字符数据与整型数据可相互赋值,直接运算。字符数据与整型数据可相互赋值,直接运算。例例 intint a,xa,x; ; char c; char c; a=a=D D; /* a=68; */; /* a=68; */ x= x=A A+5; /* x=65+5; */+5; /* x=65+5; */ s= s=! !+ +G G /* s=33+71; */ /* s=33+71; */ c=97; /* c= c=97; /* c=a

24、a; */; */2.2.大小写字母转换大小写字母转换l小写字母减小写字母减3232得到相应的大写字母,得到相应的大写字母, 如:如:a a-32 -32 得到得到A Al大写字母加大写字母加3232得到相应的小写字母得到相应的小写字母 如:如:B B+32 +32 得到得到b b3. 字符字符1 1和整数和整数1 1是不同的概念是不同的概念:字符字符1 1只是代表一个形状为只是代表一个形状为1 1的符号,在需的符号,在需要时按原样输出,在内存中以要时按原样输出,在内存中以ASCIIASCII码形式存储,占码形式存储,占1 1个字节个字节1 1是十进制整数,是是十进制整数,是intint型整数

25、型整数字符常量与字符串常量不同字符常量与字符串常量不同5 5、字符串常量、字符串常量定义:定义:用一对双撇号用一对双撇号( (” ”) )括起来的括起来的字符序列字符序列。 如:如: ”hellohello” ”MaryMary” ”aaaaaann ”存储:存储:每个字符串尾每个字符串尾自动自动加一个加一个 00 作为字符作为字符串结束标志串结束标志h e l l o 0例例 字符串字符串”hellohello ”在内存中在内存中a a 0例例 a a”a”例例 空串空串 ” ”0例: char ch; ch= ”A”; 例: char ch; ch=A; 练习: printf(”Youre

26、 my good friend!”n”);在在显示器上示器上输出什么出什么?”Youre my good friend! ” 5、变量赋初值、变量赋初值格式格式:类型说明符类型说明符 变量变量1=常数常数1,变量变量2=常数常数2,; 例例:int a=2;float data=3.67; char ch=A;int x=1,y=1,z=1;int x=y=z=1;(语法错误)(语法错误)int m=10,n; (被定义的变量的一部分赋初值)(被定义的变量的一部分赋初值)变量赋初值变量赋初值是指在是指在定义变量定义变量时时给变量赋值给变量赋值,这个值,这个值称为变量的初值。称为变量的初值。三、

27、算术运算符和算术表达式三、算术运算符和算术表达式1、算术运算符、算术运算符:算术运算符用于各类:算术运算符用于各类数值运算数值运算。基本的算术运算符:基本的算术运算符:、 (正、负号运算符)(正、负号运算符) 、* *、/ /、%(取余)(取余)(取余)(取余)只需要一个运算对象,只需要一个运算对象,单目运算符单目运算符除法运算符除法运算符“/”进行进行求商运算求商运算。对于不同类型的。对于不同类型的运算对象,除法表达式计算结果的类型也会不同。运算对象,除法表达式计算结果的类型也会不同。例:例:计算计算x/y如果如果x,y是是整型整型,则结果为,则结果为整型整型,小数部分,小数部分被略去。被略

28、去。 5/2结果为结果为2,整型量,整型量 2/5结果为结果为0,整型量,整型量如果如果x,y其中一个为浮点型量,则结果为浮其中一个为浮点型量,则结果为浮点型点型5.0/2.0结果为结果为2.5,“”是是求余运算求余运算。ab计算计算a除以除以b后的余数,也后的余数,也是是a模模b的值。它要求两个运算对象的值。它要求两个运算对象必须必须是是整型整型,其,其结果也是整型量结果也是整型量。例:例:52结果为结果为1 25结果为结果为2 10%3.0 语法错误语法错误扩充:扩充:% 和和 / 的非常常用的用法:的非常常用的用法:求一个整数各位上的数字。求一个整数各位上的数字。例如:对任意一个三位数例

29、如:对任意一个三位数n,分别求出个、十、百位,分别求出个、十、百位上的数字。上的数字。 eg:n=456 个位:个位:456%10 得到得到 6 十位:十位:456/10%10(或或456%100/10)得到得到5 百位:百位:456/10/10 (或(或456/100)得到)得到42.算算术表达式表达式用算用算术运算符和括号将运算运算符和括号将运算对象(操作象(操作数)数)连接起来的、符合接起来的、符合C语法法规则的式子的式子,称称为C算算术表达式表达式。如:如:1+3.5*2-10 (x+y)*3-6+a表达式的表达式的值表达式的运算表达式的运算结果果一般数学式一般数学式a(b+c)+da

30、c算术表达式算术表达式(a*(b+c)+d)*a*c 将方括号改成圆将方括号改成圆括号,括号,* *不能省略不能省略x/(x+y)+1.0/(x*y) 其中不能出现分其中不能出现分数,改用除法运算符,圆括号不能缺少数,改用除法运算符,圆括号不能缺少3.14159*r*r/2.0 其中其中 为非字母字为非字母字符,要用浮点型常量代替符,要用浮点型常量代替例:将数学公式改为算术表达式例:将数学公式改为算术表达式3、算算术运算符的运算符的优先先级和和结合性合性优先先级:高高 - - - -* / %* / % - + - - + - 低低 (2) (3) (4)(2) (3) (4)注意注意:可以用

31、可以用( )来改来改变运算的运算的顺序序. 如如 (3+5)*8/(4.0-2)结合性:合性:运算符的运算符的“结合性合性”决定决定同同优先先级的运算符的运算符对操作数操作数的运算次序的运算次序 左左结合性:合性:自左向右运算自左向右运算右右结合性:合性:自右向左运算自右向左运算+ - *为左左结合性合性 例如:例如:a+b+c-d 根据左根据左结合性,等价于合性,等价于(a+b)+c)-d- (求(求负值运算)运算)为右右结合性合性 四、自增、自减运算符四、自增、自减运算符类别类别: 单目运算,单目运算,运算优先级为运算优先级为2运算符:运算符: + 使变量的值增使变量的值增 1 - 使变量

32、的值减使变量的值减 1运算规则运算规则: 后缀后缀 i i 前缀前缀 i i先使用先使用i的值,再使的值,再使i的值加的值加(减减)1先先使使i的值加的值加(减减)1 ,再使用,再使用i的值的值结合性结合性:右结合右结合例如:例如:int main()int x,m,n; x=10;m=x+;n=+x;return 0;该语句执行后,该语句执行后,m=10,x=11该语句执行后,该语句执行后,n=12,x=12例例 j=3; k=+j; j=3; k=+j; j=3; k=j+; j=3; k=j+; j=3; j=3; printf(printf(“%d%d”,+j,+j); ); j=3;

33、 j=3; printf(printf(“%d%d”,j,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=4,j=4/k=3,j=4/k=3,j=4/4/4/3/3/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=4自增、自减运算只能用于变量,不能用于常量自增、自减运算只能用于变量,不能用于常量和表达式。和表达式。注意注意:例例 +6+6, +(a+ba+b)均为非法的运算)均为非法的运算自增、自减运算符高于基本算术运算符。自增、自减运算符

34、高于基本算术运算符。自增、自减运算符的运算顺序。自增、自减运算符的运算顺序。+、- +、-( )高高*、/、% %+、-低低五、五、赋值运算符和赋值表达式赋值运算符和赋值表达式1 1、简单、简单赋值运算符赋值运算符运算符运算符:= = 表达式格式表达式格式:变量表达式变量表达式优先级优先级:1414,低于算术运算符,低于算术运算符 结合性结合性:右结合:右结合运算规则运算规则:把:把=右边表达式的值赋给左边变量右边表达式的值赋给左边变量v说明说明:赋值运算符赋值运算符左边左边必须是必须是变量变量而不能是表达式;而不能是表达式;赋值表达式的值赋值表达式的值是赋值号左边变量被赋值后的值;是赋值号左

35、边变量被赋值后的值;例例:j+3=j a*b=c*4例例:x=5 表达式的值为表达式的值为5 (赋值表达式)(赋值表达式) 8+(x=4) 表达式值是表达式值是12 (算术表达式算术表达式)如果赋值号两边的类型不一致,则将赋值号如果赋值号两边的类型不一致,则将赋值号右边右边表达式的值的类型转换成赋值号表达式的值的类型转换成赋值号左边左边变量的类型;变量的类型;赋值语句可以连续进行。赋值语句可以连续进行。例例:a=b=c=0,根据右结合性,该表达式等价于:根据右结合性,该表达式等价于: a=(b=(c=0)例 int i; i=2.56; /结果i=2;例 float f; int i; i=1

36、0; f=i;则 f=10.000002、复合赋值运算、复合赋值运算算术运算符算术运算符“+ * / %”和赋值运算符和赋值运算符“=”结结合起来,形成复合赋值运算符。合起来,形成复合赋值运算符。+= :加赋值运算符:加赋值运算符; 如如a+=3,等价于,等价于 a=a+3-= :减赋值运算符:减赋值运算符; 如如a-= b+3,等价于,等价于 a=a- (b+3) *=、/=、%= 与此类似与此类似注意注意:复合运算符在书写时,两个运算符之间复合运算符在书写时,两个运算符之间不能有不能有空格空格。复合赋值运算符的结合性和优先级等同于简单复合赋值运算符的结合性和优先级等同于简单的赋值运算符的赋

37、值运算符“= =”。复合运算符左边必须是变量;复合运算符左边必须是变量;复合运算符右边的表达式计算完成后才参与复复合运算符右边的表达式计算完成后才参与复合赋值运算;合赋值运算; 表达式中不同数据类型的混合运算表达式中不同数据类型的混合运算当表达式中的数据类型不同时,要进行类型转换。当表达式中的数据类型不同时,要进行类型转换。转换方式转换方式自动(隐式)转换自动(隐式)转换:系统自动把数据由系统自动把数据由低级类低级类型型向向高级高级转换转换。强制转换强制转换:将表达式的运算结果强制转换成指:将表达式的运算结果强制转换成指定的数据类型。定的数据类型。如下表达式是合法的:如下表达式是合法的: 13

38、.14159+ 0+ AfloatdoublelongunsignedintCharshort低低高高自动转换规则:自动转换规则:横向必做横向必做纵向选做纵向选做例例:数据类型自动转换实例:数据类型自动转换实例有如下变量有如下变量类型:类型:char c;int i;float f;double d;计算表达式:计算表达式:c+f+i+dchar float int doublec + f + i + d int double double double该表达式值的类型是该表达式值的类型是doubledouble类型类型 doubledoubledouble强制类型转换运算符:强制类型转换运算

39、符:(类型名)(类型名)格式:格式:(目标类型名)(表达式)(目标类型名)(表达式)注意注意: : 1 1)强制转换属单目运算,运算优先级为)强制转换属单目运算,运算优先级为2 2。 2 2)强制转换得到的是中间变量类型,原变量类型不变。)强制转换得到的是中间变量类型,原变量类型不变。如:如:int n; float x=1.5f; n = (int)x;强制转换后强制转换后n n的值是的值是1 1,而,而x x仍然是仍然是1.5,类型是类型是float例例:int x=2, y=3; float z=1.6f; (float)(x+y); (将(将x+y的值转换为的值转换为float类型,得

40、类型,得5.0) (int)z + x;(先将(先将z转换为整型转换为整型1,再与,再与x相加,得相加,得3)练习:练习: 计算表达式的值:计算表达式的值:(int)(double)9/2) - 9%2(int)(double)9/2) - 9%2答案:答案:3 3补充:逗号运算符与逗号表达式补充:逗号运算符与逗号表达式逗号运算符,或称顺序求值运算符逗号运算符,或称顺序求值运算符运算符:运算符:,运算优先级:运算优先级:最低最低,15级级结合性:结合性:左结合左结合逗号表达式:由逗号运算符连接起来的两个或逗号表达式:由逗号运算符连接起来的两个或两个以上的表达式。两个以上的表达式。 格式:格式:

41、 表达式表达式1,表达式,表达式2, ,表达式,表达式n 逗号表达式的值逗号表达式的值表达式表达式n的值的值求解过程求解过程:先求表达式先求表达式1 1的值,再求表达式的值,再求表达式2 2的值,的值,直至求出表达式,直至求出表达式n n的值。整个表达式的值为的值。整个表达式的值为表达式表达式n n的值。的值。例例: 1) x=0, y=100 2) x=5*8, 6+9 3) x=1, y=99, z=(x+y)*5 4) x=(i=10, j=5, i*j) 5) x=i=10, j=5, i*j先后给先后给x x,y y的赋值,表的赋值,表达式的值为达式的值为100100先把先把x赋值为

42、赋值为40,表达表达式的值为式的值为1515给给x,yx,y赋值后,计算赋值后,计算z z的的值,表达式的值为值,表达式的值为500500等价于等价于x50先给先给x,ix,i赋值,再给赋值,再给j j赋值,赋值,计算计算i*j,表达式的值为表达式的值为5050求解过程求解过程:先求表达式先求表达式1 1的值,再求表达式的值,再求表达式2 2的值,的值,直至求出表达式,直至求出表达式n n的值。整个表达式的值为的值。整个表达式的值为表达式表达式n n的值。的值。例 a=3*5,a*4 a=3*5,a*4,a+5例 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,3作业作业 下节课上课交下节课上课交见 第第3章章(1)作作业.doc

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

最新文档


当前位置:首页 > 办公文档 > 工作计划

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