C语言 第03章 数据类型、运算符与表达式.ppt

上传人:s****8 文档编号:69346966 上传时间:2023-01-02 格式:PPT 页数:66 大小:1.42MB
返回 下载 相关 举报
C语言 第03章 数据类型、运算符与表达式.ppt_第1页
第1页 / 共66页
C语言 第03章 数据类型、运算符与表达式.ppt_第2页
第2页 / 共66页
点击查看更多>>
资源描述

《C语言 第03章 数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《C语言 第03章 数据类型、运算符与表达式.ppt(66页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第三章第三章 数据类型、运算符数据类型、运算符和表达式和表达式 3.1 C3.1 C的数据类型的数据类型 3.2 3.2 常量与变量常量与变量 3.3 3.3 整型数据整型数据 3.4 3.4 浮点型数据浮点型数据 3.5 3.5 字符型数据字符型数据第三章第三章 目录目录第三章第三章 数据类型、运算符数据类型、运算符和表达式和表达式 3.6 3.6 变量赋初值变量赋初值 3.7 3.7 各类数值型数据间的混合运算各类数值型数据间的混合运算 3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式 3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式 3.10 3.10 逗号运算符

2、和逗号表达式逗号运算符和逗号表达式第三章第三章 目录目录3.1 C3.1 C的数据类型的数据类型3.1 C3.1 C的数据类型的数据类型数据类型数据类型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型整型整型字符型字符型实型实型(浮点型浮点型)枚举类型枚举类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型单精度型单精度型双精度型双精度型3.2 3.2 常量与变量常量与变量1.1.常量常量3.2 3.2 常量与变量常量与变量概念:概念:在程序运行中在程序运行中,其数值其数值不能被改变的量。不能被改变的量。分类:分类:直接常量和符号常量直接常量和符号常量直接常量:直接常量:直

3、接常量:直接常量:3.2 3.2 常量与变量常量与变量整型常量整型常量实型常量实型常量字符常量字符常量字符串常量字符串常量12 0 -312 0 -34.5 -1.234.5 -1.23a 1a 1“a”“1”a”“1”“abcabc”是在程序中是在程序中直接引用直接引用的数据。的数据。符号常量:符号常量:符号常量:符号常量:3.2 3.2 常量与变量常量与变量定义形式:定义形式:#define#define 标识符标识符 常量数据常量数据#define PRICE 30#include“stdio.h”void main()int n,t;n=10;t=n*PRICE;printf(“t=%

4、d”,t);用一个标识符代表一个常量。用一个标识符代表一个常量。2.2.变量变量3.2 3.2 常量与变量常量与变量变量名变量名变量值变量值a a存储单元存储单元3 3概念:概念:在程序运行中在程序运行中,其数值可以被改变的量。其数值可以被改变的量。标识符的命名规则标识符的命名规则3.2 3.2 常量与变量常量与变量(1)(1)只能由字母、数字和下划线三种字符组成,且只能由字母、数字和下划线三种字符组成,且 第一个字符必须为字母或下划线第一个字符必须为字母或下划线。如:如:_1 year month student_name sum0 _1 year month student_name su

5、m0 M.D.Jones$123#a 3b?c a=bM.D.Jones$123#a 3b?c a=b注意注意:在在C C语言中,大小写字母不等效。因此,语言中,大小写字母不等效。因此,a a和和A A,SumSum和和sumsum,分别是两个不同的标识符。分别是两个不同的标识符。3.2 3.2 常量与变量常量与变量(2)(2)ANSI CANSI C标准没有规定标识符的长度,随系统而标准没有规定标识符的长度,随系统而 异,但至少前异,但至少前8 8个字符有效个字符有效。如:如:student_name student_numberstudent_name student_number(3)(

6、3)C C语言的关键字不能用作变量名语言的关键字不能用作变量名。标识符命名的良好习惯标识符命名的良好习惯见名知意见名知意如:如:name/name/xmxm(姓名姓名)sex/)sex/xbxb(性别性别)age/age/nlnl(年龄年龄)stu_num/xhstu_num/xh(学号学号)3.2 3.2 常量与变量常量与变量注意注意:在在C C语言中,要求对所有用到的变量作强制语言中,要求对所有用到的变量作强制 定义,即定义,即“先定义,后使用先定义,后使用”。变量定义的一般形式:变量定义的一般形式:类型标识符类型标识符 变量名变量名1,1,变量名变量名2,2,变量名变量名3 3,.;自己

7、设定,满足自己设定,满足标识符的规定。标识符的规定。如:如:intint,float,charfloat,char;不可省;不可省3.3 3.3 整型数据整型数据3.3 3.3 整型数据整型数据1.整型常量的表示方法整型常量的表示方法12,-100,012,-100,00 012=1*812=1*8+2*8+2*8 =10(=10(十进制)十进制)0 x0 x12=1*1612=1*16+2*16+2*16 =18(=18(十进制)十进制)十进制整数十进制整数八进制整数八进制整数十六进制整数十六进制整数3.3 3.3 整型数据整型数据2.整型变量整型变量i i数据在内存中是以二进制形式数据在内

8、存中是以二进制形式(补码补码)存放的。存放的。int i;i=10;1010i i0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0-10的补码的补码取反取反再加再加1 1(1)(1)整型数据在内存中的存放方式整型数据在内存中的存放方式3.3 3.3 整型数据整型数据基本

9、型基本型 intint短整型短整型 short short intint 或或 shortshort长整型长整型 long long intint 或或 longlong无符号型,其中无符号型又分为:无符号型,其中无符号型又分为:无符号整型无符号整型 unsigned unsigned intint 无符号短整型无符号短整型 unsigned short unsigned short intint 无符号长整型无符号长整型 unsigned long unsigned long intint(2)(2)整型变量的分类整型变量的分类3.3 3.3 整型数据整型数据int x;long y;200

10、0200120022005xy内存内存内存地址内存地址20032004实例实例3.3 3.3 整型数据整型数据类类 型型比特数比特数最小取值范围最小取值范围short short 1616-3276832767unsigned shortunsigned short1616065535intint1616-3276832767unsigned unsigned intint1616065535longlong3232-21474836482147483647unsigned longunsigned long323204294967295表表3.1 3.1 Turbo C Turbo C 中的

11、整数类型中的整数类型3.3 3.3 整型数据整型数据(3)(3)整型变量的定义整型变量的定义#include“stdio.h”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);运行结果运行结果a+u=22,b+u=-143.3 3.3 整型数据整型数据(4)(4)整型数据的溢出整型数据的溢出#include“stdio.h”void main()int a,b;a=32767;b=a+1;printf(“%d,%d”,a,b);0 0 1 1 1 1 1 1 1 1

12、 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0a a:b b:3276732767-32768-32768运行结果运行结果32767,-327683.3 3.3 整型数据整型数据3.整型常量的类型整型常量的类型-32768-32768+32767+32767intint型型-2147483648-2147483648+2147483647+2147483647long long intint型型 整型常量:整型常量:长整型常量:

13、长整型常量:intint型变量型变量long long intint型变量型变量long long intint型变量型变量3.3 3.3 整型数据整型数据 short short intint与与intint型数据在内存中占据的长度相同。型数据在内存中占据的长度相同。intint型常量型常量short short intint型型常量常量intint型变量型变量short short intint型变量型变量 在一个整常量后加一个字母在一个整常量后加一个字母1 1或或L,L,则认为是则认为是 long long intint型常量。型常量。例如例如:1231,432:1231,432L,0L

14、L,0L等。等。3.3 3.3 整型数据整型数据#include“stdio.h”void main()int x;x=10*9*8*7*6*5*4*3*2*1;printf(%d,x);例例.看看下面程序的输出是什么看看下面程序的输出是什么?运行结果:运行结果:-30363.4 3.4 浮点型数据浮点型数据3.4 3.4 浮点型数据浮点型数据1.浮点型常量的表示方法浮点型常量的表示方法十进制小数形式十进制小数形式指数形式指数形式十进制小数十进制小数+e/E+e/E+十进制数整数十进制数整数例如例如:3.4 :3.4 4.4.3.3例如例如:12.5e-6 :12.5e-6 表示表示12.51

15、2.51010-6-6小数部分小数部分e(e(或或E)E)指数部分指数部分3.4 3.4 浮点型数浮点型数据据2.浮点型变量浮点型变量数据在内存中是以指数形式存储的。数据在内存中是以指数形式存储的。(1)(1)浮点型数据在内存中的存放方式浮点型数据在内存中的存放方式+.3 1 4 1 5 91数符数符小数部分小数部分指数指数+.314159.314159*3.141593.141593.4 3.4 浮点型数据浮点型数据单精度(单精度(floatfloat)型型双精度(双精度(doubledouble)型型长长双精度(双精度(long doublelong double)型型(2)(2)浮点型变

16、量的分类浮点型变量的分类类型类型字节数字节数有效数字有效数字数值范围数值范围float4 46 67 7-3.4*-3.4*1010-38-383.43.4*10103838double8 815151616-1.7*-1.7*1010-3-30 08 81.71.7*10103 30 08 8long double161618181919-1.2*-1.2*1010-493249321.2.2*1010493249323.4 3.4 浮点型数据浮点型数据(3)(3)浮点型数据的舍入误差浮点型数据的舍入误差#include“stdio.h”void main()float a,b;a=1234

17、56.789e5;b=a+20;printf(“%f”,b);运行结果运行结果12345678848.00000012345678848.0000003.4 3.4 浮点型数据浮点型数据3.浮点型常量的类型浮点型常量的类型许多许多C C编译系统将浮点型常量作为双精度来处理。编译系统将浮点型常量作为双精度来处理。在数的后面加字母在数的后面加字母f f或或F F(如如1.65f,654.87F1.65f,654.87F),),这样编译系统就会按单精度来处理。这样编译系统就会按单精度来处理。例如:例如:float f;f=2.45678*4523.65;float f;f=2.45678*4523.

18、65;3.4 3.4 浮点型数据浮点型数据一个浮点型常量可以赋给一个一个浮点型常量可以赋给一个floatfloat型、型、doubledouble或或long doublelong double型变量。根据变量的类型变量。根据变量的类型截取浮点型常量中相应的有效位数字。型截取浮点型常量中相应的有效位数字。例如:例如:float a;a=123456.789;float a;a=123456.789;3.5 3.5 字符型数据字符型数据3.5 3.5 字符型数据字符型数据1.字符常量字符常量二种表现形式:二种表现形式:用单引号括起来的一个字符。用单引号括起来的一个字符。用单引号括起来的由反斜杠用

19、单引号括起来的由反斜杠()()引导的转引导的转义字符。义字符。如:如:AA、aa、11、$、?等。等。转义字符及其含义表转义字符及其含义表3.5 3.5 字符型数据字符型数据字符形式字符形式含义含义ASCII代码代码 nn换行换行10 tt水平制表水平制表9 bb退格退格8 rr回车回车13 ff换页换页12 反斜杠字符反斜杠字符92 单撇号字符单撇号字符39 双撇号字符双撇号字符34 dddddd13位位8进制数所代表的字符进制数所代表的字符 xhhxhh13位位16进制数所代表的字符进制数所代表的字符3.5 3.5 字符型数据字符型数据例例.转义字符的使用转义字符的使用#include#i

20、nclude“stdio.hstdio.h”void void main()main()printf(“printf(“abab ctct derftgnderftgn”);”);printf(“htibbjprintf(“htibbj k k”);”);/*/*注注 代表空格代表空格*/设一个输出区占设一个输出区占8 8列,试分析输出结果。列,试分析输出结果。1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8a a b bc cd d e ef fg gh hi ij jk k3.5 3.5 字符型数据字符型数据2.

21、字符变量字符变量字符变量的定义:字符变量的定义:char c1,c2;char c1,c2;字符变量用来存放字符常量,注意一个字符变量字符变量用来存放字符常量,注意一个字符变量只能存放一个字符只能存放一个字符。一个字节来存放一个字符,或者说一个字符变量一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。在内存中占一个字节。如:如:c1=a;c1=a;c2=b;c2=b;3.5 3.5 字符型数据字符型数据3.字符数据在内存中的存储形式及其使用方法字符数据在内存中的存储形式及其使用方法将一个字符常量放到字符变量中,实际是将该将一个字符常量放到字符变量中,实际是将该字符的相应的字符的相应

22、的ASCASC代码放到存储单元中。代码放到存储单元中。例如:例如:char c1,c2;char c1,c2;c1=a;c1=a;c2=b;c2=b;?c1c1c2c29798c1c1c2c201100001c1c1c2c2011000103.5 3.5 字符型数据字符型数据字符数据的特性字符数据的特性在在0 0255255之间字符型数据和整数可以通用。之间字符型数据和整数可以通用。一个字符数据既可以以字符形式输出,也一个字符数据既可以以字符形式输出,也可以以整数形式输出。可以以整数形式输出。可以对字符数据进行算术运算,此时相当可以对字符数据进行算术运算,此时相当于对它们的于对它们的ASCAS

23、C码进行算术运算码进行算术运算。如:如:65D(65D(十进制十进制)=41H()=41H(十六十六)=101Q()=101Q(八八)字符字符A A可以表示为可以表示为:A A x41x41 101101 65 0 x41 65 0 x41 010101013.5 3.5 字符型数据字符型数据例例.字符型数据和整型数据的通用字符型数据和整型数据的通用。#include“stdio.h”void main()char c1,c2;int i,j;c1=97;c2=b;i=a;j=98;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);printf(“%c%c

24、n”,i,j);printf(“%d%dn”,i,j);运行结果运行结果a b97 98a b97 983.5 3.5 字符型数据字符型数据例例.大小写字母的转换。大小写字母的转换。#include“stdio.h”void main()char c1,c2;c1=97;c2=98;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);c1=c1-32;c2=c2-(a-A);printf(“%c%cn”,c1,c2);运行结果运行结果a b 97 98A B3.5 3.5 字符型数据字符型数据3.字符串常量字符串常量概念:用双引号括起来的字符序列。概念:用双

25、引号括起来的字符序列。长度:字符串中字符的个数长度:字符串中字符的个数(包括空格包括空格)。如:如:“How are you.”How are you.”长度为长度为1212 “#123”“#123”长度为长度为4 4如:如:“How are you.”How are you.”、“#123”#123”等等3.5 3.5 字符型数据字符型数据字符串的存储字符串的存储如:字符串如:字符串“CHINA”CHINA”长度为长度为5 5,实际上在内存中,实际上在内存中是是字符串结束标志字符串结束标志00:由系统在结尾自动添加由系统在结尾自动添加C CH HI IN NA A00注意注意:00是由系统自

26、动添加,在源程序中书写字符是由系统自动添加,在源程序中书写字符串常量时,不必再加串常量时,不必再加00。如如:不能写成不能写成“CHINA0”CHINA0”。3.5 3.5 字符型数据字符型数据字符常量字符常量A和字符串常量和字符串常量“A”是两回是两回事:事:定义符不同定义符不同长度不同长度不同存储要求不同存储要求不同注意注意:C C语言中没有专门的字符串变量,字符串常量语言中没有专门的字符串变量,字符串常量是按照数组处理的。是按照数组处理的。3.6 3.6 变量赋初值变量赋初值3.6 3.6 变量赋初值变量赋初值变量的初始化变量的初始化在定义变量的同时对变量进行赋值在定义变量的同时对变量进

27、行赋值如:如:int a=3;float f=3.56;char c=a;格式:格式:类型类型 变量名变量名=初值初值,变量名变量名2=2=初值初值 ;说明说明:初始化不是在编译阶段完成的,而是在程初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋予初值的,相当序运行时执行本函数时赋予初值的,相当于有一个赋值语句。于有一个赋值语句。如:如:int a=3;int a;a=3;3.6 3.6 变量赋初值变量赋初值注意注意:int a,b,c=5;对几个变量赋以同一初值:对几个变量赋以同一初值:int a=b=c=5;int a=5,b=5,c=5;只对变量只对变量c初始化,值为初始化,值

28、为5。是非法的是非法的是合法的是合法的 注:注:a=b=c=5;是合法的赋值语句是合法的赋值语句3.7 3.7 各类数值型数据间的混合运算各类数值型数据间的混合运算3.7 3.7 各类数值型数据间的混合运算各类数值型数据间的混合运算C C语言允许整型、浮点型、字符型数据进行混合运算。语言允许整型、浮点型、字符型数据进行混合运算。intunsigned intlong intdoublefloatchar,short转换规则转换规则转换规则转换规则存储长度较短存储长度较短存储长度较长存储长度较长总总趋势:趋势:3.7 3.7 各类数值型数据间的混合运算各类数值型数据间的混合运算例例.判断混合运算

29、的结果判断混合运算的结果int x=2;float y=1.6;char c=A;c+x*y=?65(int)2(int)1.6(double)3.2(double)68.2(double)3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式C C 运算符简介运算符简介运算符的分类运算符的分类运算符的分类运算符的分类 (13(13类类)分类依据:运算符的功能分类依据:运算符的功能算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符赋值运算符赋值运算符按位运算符按位运算符其它运算符其它运算符参参参参见见见见附附附附录录录

30、录3 3 3 3(3 3 3 3 6 6 6 6 5 5 5 5 页页页页):运运运运算算算算符符符符的的的的优优优优先先先先级级级级和和和和结结结结合合合合方方方方向向向向一一一一览览览览表表表表表达式表达式表达式表达式是由是由操作数操作数操作数操作数和和运算符运算符运算符运算符组成的序列。组成的序列。3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式运算符的优先级和结合性运算符的优先级和结合性优先级优先级优先级优先级 指表达式中包含多个运算符时,按照优先级指表达式中包含多个运算符时,按照优先级别高低次序执行。别高低次序执行。结合性结合性结合性结合性指同级运算时运算符的结合方向。指

31、同级运算时运算符的结合方向。如:如:a#b#c a#b#c(#代表某一运算符)代表某一运算符)左结合性左结合性左结合性左结合性(从左至右从左至右)先运算先运算a#ba#b,再将其结果与再将其结果与c c运算运算右结合性右结合性右结合性右结合性(从右至左从右至左)先运算先运算b#cb#c,再将其结果与再将其结果与a a运算运算3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式1.1.1.1.算术运算符算术运算符算术运算符算术运算符+加法加法-减法减法*乘法乘法/除法除法%取余或模取余或模3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式2.2.2.2.算术表达式算术表达式算术

32、表达式算术表达式用用算术运算符算术运算符和和括号括号将操作数连接起来的、将操作数连接起来的、符合符合C C语法规则的式子语法规则的式子。优先级:优先级:()*/%/%+-+-结合性:自左向右,与数学上一致。结合性:自左向右,与数学上一致。表达式的值:表达式的值:数值型:数值型:intint、longlong、unsignedunsigned、doubledouble3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式例例.已知:已知:float a=2.0;float a=2.0;intint b=6,c=3;b=6,c=3;求解:求解:a*b/c-1.5+a*b/c-1.5+A A+

33、abs(-5)=+abs(-5)=?double double 12.012.0/3/3 doubledouble 4.0 4.0-1.5-1.5doubledouble 2.5 2.5+65+65intintdoubledouble 67.5 67.55 5doubledouble 72.5 72.53.8 3.8 算术运算符和算术表达式算术运算符和算术表达式3.3.3.3.强制类型转换运算符强制类型转换运算符强制类型转换运算符强制类型转换运算符形式:形式:(类型名类型名)表达式表达式例:例:intint a=2,b=5;float x=4.4;a=2,b=5;float x=4.4;(fl

34、oat)b/a(float)b/a2.52.5(float)(b/a)(float)(b/a)2.02.0注意:注意:在在强强制制类类型型转转换换时时,得得到到所所需需类类型型的的中中间间变变量,原来变量的类型和值都不变。量,原来变量的类型和值都不变。3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式例例.强制类型转换。强制类型转换。#include“stdio.h”void main()float x;int i;x=3.6;i=(int)x;printf(“x=%f ni=%d”,x,i);运行结果运行结果x=3.600000i=33.8 3.8 算术运算符和算术表达式算术运算符

35、和算术表达式4.4.4.4.自增、自减运算符(自增、自减运算符(自增、自减运算符(自增、自减运算符(+和和和和-)基本运算:基本运算:+i -i i+i-用法与规则用法与规则前置运算前置运算前置运算前置运算先增先增(减减)1,再使用,再使用i+i-i后置运算后置运算后置运算后置运算i+i-先使用先使用i,再增再增(减减)13.8 3.8 算术运算符和算术表达式算术运算符和算术表达式用法举例用法举例 int i=3;(1)(1)单独使用时单独使用时+i;等等 价价i+;+;等等 价价i=i+1;+1;(2)j=+i;(2)j=+i;(3)j=i+;(3)j=i+;i=i+1;j=i;i=i+1;

36、j=i;i i为为4 4,j j为为4 4j=i;i=i+1;j=i;i=i+1;j j为为3 3,i i为为4 43.8 3.8 算术运算符和算术表达式算术运算符和算术表达式说明:说明:+和和只只能用于变量,不能用于表达式或常量。能用于变量,不能用于表达式或常量。结合性:自右向左结合性:自右向左例:例:i=2;j=-i+;i=2;j=-i+;-i+-i+先使用先使用i i再使再使i i增加增加1 1-(i+i+)如:如:5+(a+b)+5+(a+b)+3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式 +和和常常用于循环语句和指针变量中。用于循环语句和指针变量中。在表达式中,连续使

37、用同一变量进行自增或自在表达式中,连续使用同一变量进行自增或自 减运算时很容易出错,所以尽量避免这种用法。减运算时很容易出错,所以尽量避免这种用法。如:如:(i+)+(i+)+(i+)(i+)+(i+)+(i+)若想得到若想得到1212,可以写成下列语句:,可以写成下列语句:i=3;i=3;a=i+;a=i+;b=i+;b=i+;c=i+;c=i+;d=a+b+c;d=a+b+c;3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式 i+ji+j 应该理解为应该理解为(i+)+j(i+)+j。intint i=3;i=3;printf(“%d,%d”,i,iprintf(“%d,%d”

38、,i,i+);+);其结果为:其结果为:4 4,3 3最好写成:最好写成:j=i+;j=i+;printf(“%d,%d”,i,jprintf(“%d,%d”,i,j););3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式1.1.赋值运算符赋值运算符赋值运算符赋值运算符=(数学上的等号)(数学上的等号)功能:将一个表达式的值赋给一个变量。功能:将一个表达式的值赋给一个变量。2.2.赋值表达式赋值表达式赋值表达式赋值表达式形式形式:=结合性:自右至左结合性:自右至左求值规则求值规则:将将“=”右边表达式的值赋右边表达式的值赋

39、给左边的变量。给左边的变量。3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式 例例.赋值表达式赋值表达式(1)(1)x=(y=12)/4y值为值为12,x值为值为3,表达式的值为,表达式的值为3(2)(2)x=y=12/4y值为值为3,x值为值为3,表达式的值为,表达式的值为3 (3)(3)x=(y=12/4)y值为值为3,x值为值为3,表达式的值为,表达式的值为3 3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式3.3.赋值转换赋值转换赋值转换赋值转换在在赋值时,将赋值符右边值的类型转换成赋值时,将赋值符右边值的类型转换成与其左边变量类型一致的类型。与其左边变量类型一

40、致的类型。几种情况:几种情况:(1)(1)浮点型浮点型整型或字符型整型或字符型取整数部分,去掉小数部分取整数部分,去掉小数部分(2)(2)整型或字符型整型或字符型浮点型浮点型补足有效位补足有效位float f=23;23.00000 float f=23;23.00000 (7 7位)位)double f=A;65.00000000000000 (16double f=A;65.00000000000000 (16位位)3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式(3)(3)对对charchar、intint、shortshort、longlong、unsignedunsign

41、ed型数据型数据赋值符右边数据赋值符右边数据(a a位)位)赋值符左边变量赋值符左边变量(b b位)位)a=b a=b 原样照赋原样照赋 ab ab 截断高截断高(a-b)(a-b)位,送低位,送低b b位位 abab无符号数据或正数无符号数据或正数有符号数据有符号数据高高a-ba-b位全补位全补0 0有符号变量有符号变量,符号扩展符号扩展符号扩展符号扩展符号位为符号位为0 0,剩余的高位补,剩余的高位补0 0符号位为符号位为1 1,剩余的高位补,剩余的高位补1 13.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式44.复合赋值运算符复合赋值运算符复合赋值运算符复合赋值运算符构成:在

42、赋值运算符之前加上其他运算符构成:在赋值运算符之前加上其他运算符共共10个:个:*=/=%=+=-=&=复合运算符是一个复合运算符是一个运算符运算符,但功能上但功能上,是两个运算符功能是两个运算符功能的组合。的组合。3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式例如例如a=3;a+=a*=a;a+=ba*=b+ca=a+ba=a*(b+c)a=a+a*aa=a*a;a=a+a;3.10 3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式3.10 3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式形式:形式:逗号表达式逗号表达式1 1,逗号表达式,逗号表达式2 2,逗号表达

43、式,逗号表达式n n 求解过程求解过程:从左至右依次求各表达式的值,从左至右依次求各表达式的值,最后一个表达最后一个表达式的值作为整个逗号表达式的值式的值作为整个逗号表达式的值。优先级:最低优先级:最低 结合性:自左至右结合性:自左至右说明:说明:3+5,c-d,a*b 3.10 3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式例例.逗号表达式逗号表达式 a b y 逗号表达式逗号表达式 y=a=4,b=5,a+b4y=(a=4,b=5,a+b)549y=(a=4,b=5),a+b4599y=a=(4,b=5),a+b4559555103.10 3.10 逗号运算符和逗号表达式逗号运算符

44、和逗号表达式 C语言中逗号有两种作用:分隔符、运算符。语言中逗号有两种作用:分隔符、运算符。例例.逗号运算符和分隔符逗号运算符和分隔符int a=3,b=4,c=5;printf(%d,%d,%d,a,b,c);printf(%d,%d,%d,a,(a,b,c),c);/*分隔符分隔符*/*运算符运算符*/第三章小结第三章小结小结小结C C的基本数据类型的基本数据类型intint、floatfloat、doubledouble、charchar基本数据类型的常量表示、变量定义,及基本数据类型的常量表示、变量定义,及不同类型的数据在内存中的存储形式不同类型的数据在内存中的存储形式算算术术运运算算

45、符符、赋赋值值运运算算符符的的应应用用,及及相相关关表达式的值表达式的值 +、-运算运算 各种运算符的优先级各种运算符的优先级作业作业作业作业1.写出以下程序运行的结果。写出以下程序运行的结果。main()char=c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%cb%ctc%ctabcn”,c1,c2,c3);printf(“tb%c%c”,c4,c5);2.要将要将“China”译成密码,规律是:用原来的字译成密码,规律是:用原来的字母后面第母后面第4个字母代替原来的字母。因此,个字母代替原来的字母。因此,“China”译成译成“Glmre”。请编写程序,用赋

46、初值请编写程序,用赋初值的方法使的方法使c1c5五个变量的值分别为五个变量的值分别为C、h、i、n、a,经过运算后经过运算后,使使c1c5变成变成G、l、m、r、e,并输出。并输出。作业作业3.求下面算术表达式的值。求下面算术表达式的值。(1)(1)x+a%3*(int)(x+y)%2/4 设设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设设a=2,b=3,x=3.5,y=2.5 4.写出程序运行结果。写出程序运行结果。main()int i=8,j=10,m,n;m=+i;n=j+;printf(%d,%d,%d,%d,i,j,m,n);作业作业5.写出下面表达式运算后写出下面表达式运算后a的值,设原来的值,设原来a=12,a和和n已定义为整型变量。已定义为整型变量。(1)(1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于的值等于5 (6)a+=a-=a*=a

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com