收藏 分销(赏)

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

上传人:xrp****65 文档编号:13189797 上传时间:2026-02-01 格式:PPT 页数:57 大小:817.50KB 下载积分:10 金币
下载 相关 举报
第三章_数据类型、运算符、表达式.ppt_第1页
第1页 / 共57页
第三章_数据类型、运算符、表达式.ppt_第2页
第2页 / 共57页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C,语言程序设计,主讲:王鑫便,663195,第三章 数据类型 运算符与表达式,内容提要,C,语言的基本元素,常量和变量的概念,各种数据类型的常量及变量,变量赋初值,不同类型数据间的混合运算,几种基本运算符及其表达式,程序,指令,C语言中的基本元素,标识符,关键字,常量,运算符,分隔符,等,3.1 C,语言的基本元素,C,语言使用的基本符号共有如下五种:,大写字母:,AZ,小写字母:,az,阿拉伯数字:,09,下划线,:_,标点符号和运算符,:,逗号,.,圆点,;,分号,:,冒号,?,问号,单引号,“,双引号,(,左圆括号,),右圆括号,左方括号,右方括号,左大括号,右大括号,左尖括号,右尖括号,!,感叹号,|,竖线,/,斜杠,反斜杠,波折号,#,井号,%,百分号,&and(,与,),xor,(,异或,),*,乘号,-,减号,=,等于号,+,加号,3.1.1,符号集(字符集),3.1 C,语言的基本元素,标识符:,用来标记,常量、变量、函数及文件名字,的字符序列。,标识符的构成规则:,以字母(大小写皆可)或下划线开头,随后可跟若干个(包括,0,个)字母、数字、下划线,标识符的长度各个系统不同,,最好不要超过,8,个字符,如:,x y3 _,imax,Else,X_to_B,(合法),如:,7x,int,#No bad one re-input,(不合法),注意:,区分大小写!如:,sum,,,Sum,,,SUM,,,,表示不同的标识符。,3.1.2,标识符,关键字,也称“保留字”它是,C,语言中具有特定含义、专门用作语言特定成分的一类标识符。,ANSI,推荐的,C,语言的关键字有,32,个(,Turbo,另扩展了,11,个),如:,main,、,int,、,char,、,float,、,define,等。,注意,所有的关键字都有固定的意义,不能用作其它,所有的关键字必须小写,如:,else,与,Else,表示不同的含义:,else,是关键字;,Else,是用户定义的标识符,3.1 C,语言的基本元素,3.1.3,关键字,3.2 C,的数据类型,数据是操作的对象,数据类型是指数据的内在表现形式(,代码、存储、运算,),C,的数据类型如下:,数据类型,基本类型,构造类型,指针,空类型,整型,int,实型(浮点型),字符型,char,单精度,float,双精度,double,3.3,常量和变量,常量,在执行过程中其值不能被改变的量,常量区分为不同类型(表示形式),如:,12,、,3.2,、,a,符号常量,用一个标识符代表的一个常量,定义方法:,#define,标识符 常量,如:例,3.1,例,3.1,#define PRICE 30,void main(),int,num,total,;,num=10;,total=num*PRICE;,printf(“total,=%,d”,total,),total=300,3.3.1,常量和符号常量,3.3,常量和变量,变量,其值可以改变的量,它用标识符,(,变量名,),来表示,在内存中占据一定的存储单元。,变量的定义,类型符 标识符,注意事项,见名之意,先定义后引用,习惯上,符号常量名用,大写,,变量名用,小写,,以示区别,变量,表示,变量名,存储单元,值,例,3.1,#define PRICE 30,void main(),int,num,total,;,num=10;,total=num*PRICE;,printf(“total,=%,d”,total,);,如:,int,i,j,imax,;,char c1,c2,s;,float x,root1,root2;,double y1,y2;,3.3.2,变量,变量命名,在 C 语言中,变量命名需要遵循一定的规则,有效名称,principal,cost_price,marks_3,lastname,city,无效名称,123rate,currency$,discount%,zip code,变量的命名规则:,变量名可以由字母、数字和 _(下划线)组合而成,变量名不能包含除 _ 以外的任何特殊字符,如:,%,、,#,、逗号、空格等,变量名必须以字母或,_(下划线)开头,变量名不能包含空白字符(换行符、空格和制表符称为空白字符),C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名,C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量,变量,程序,内存,编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。,存储,Rate,Rate*5%,将值存储为DiscAmt,Rate-DiscAmt,10,0.5,将值存储为Result,9.5,C语言的基本数据类型,数据属于不同类别,Africa,The quick brown fox,TRUE,数据,非数值,数值,整型,非整型,9002.12,999,9/12/2003,2.175,123,Jackie Chan,char,数据类型,非数值,数值,整型,int,short int,long int,double,float,非整型,3.4,整型数据,整型常量,即整常数,,C,中整常数可以有三种表示形式,即十进制整数、八进制整数和十六进制整数。,计算机中数的表示及进制转换,数码、基和权,数码:表示数的符号,基:表示数码的个数,权:表示每个位所具有的值,数制,二进制,八进制,十进制,十六进制,3.4.1,整型常量,3.4,整型数据,计算机中数的表示及进制转换,数码、基和权,数制,(数据在内存中是以二进制形式存放的),二进制,由数字,0,和,1,组成。如:,00001010,八进制,以,数字,0,开头的数,;,由数字,07,组成。如:,0123(123),8,十进制,一串连续的数字表示,最高位非零。如:,123,、,-34,、,0,十六进制,以,0 x,开头,的数;由,09,、,af,(,AF,)组成。如:,0 x123(123),16,3.4.1,整型常量,判断:,32767,,,-32768,,,0,,,010,,,011,,,016,,,018,,,0 x10,,,0 xde,,,0 xf,3.4,整型数据,计算机中数的表示及进制转换,各种进制之间的转换,二进制、八进制、十六进制转换成十进制,方法:,按权相加。,3.4.1,整型常量,例:,3.4,整型数据,3.4.1,整型常量,计算机中数的表示及进制转换,各种进制之间的转换,二进制、八进制、十六进制转换成十进制,方法:,按权相加。,十进制转换成二进制、八进制、十进制,方法:,连续除以基,从低到高记录余数,直至商为,0,3.4,整型数据,3.4.1,整型常量,计算机中数的表示及进制转换,例,1,:把十进制数,59,转换成二进制数,(59),10,=(111011),2,59,2,29,2,14,2,7,2,3,2,1,1,1,0,1,1,1,余,余,余,余,余,余,1,1,1,0,1,1,例,2,:把十进制数,159,转换成八进制数,159,8,19,8,2,(159),10,=(237),8,2 3 7,余,7,余,3,余,2,例,3,:把十进制数,459,转换成十六进制数,459,16,28,16,1,16,0,(459),10,=(1CB),16,1 C B,余11,余,12,余,1,3.4,整型数据,3.4.1,整型常量,计算机中数的表示及进制转换,各种进制之间的转换,二进制、八进制、十六进制转换成十进制,十进制转换成二进制、八进制、十进制,二进制与八进制间的转换,二进制转换成八进制:,方法:,从右向左,每,3,位一组(不足,3,位左补,0,),转换为八进制,八进制转换成二进制:,方法:,用,3,位二进制数代替每一位八进制数,例:,(1101001),2,=(,00,1,101,001),2,=(151),8,例:,(246),8,=(,0,10,100,110),2,=(10100110),2,000 0,001 1,010 2,011 3,100 4,101 5,110 6,111 7,3.4,整型数据,3.4.1,整型常量,计算机中数的表示及进制转换,各种进制之间的转换,二进制、八进制、十六进制转换成十进制,十进制转换成二进制、八进制、十进制,二进制与八进制间的转换,二进制与十六进制间的转换,二进制转换成十六进制,方法:,从右向左,每,4,位一组(不足,4,位左补,0,),转,换成十六进制,十六进制转换成二进制,方法:,十六进制转换成二进制:用,4,位二进制数代替,每一位十六进制数,例:,(11010101111101)2=(,00,11,0101,0111,1101)2=(357D)16,例:,(4B9E)16=(,0,100,1011,1001,1110)2=(100101110011110)2,0000 0,0001 1,0010 2,0011 3,0100 4,0101 5,0110 6,0111 7,1000 8,1001 9,1010 A,1011 B,1100 C,1101 D,1110 E,1111 F,3.4,整型数据,3.4.1,整型常量,计算机中数的表示及进制转换,字节和位,内存以字节为单元组成,每个字节有一个地址,一个字节一般由,8,个二进制位组成,每个二进位的值是,0,或,1,0,1,2,3,4,5,6,7,8,9,10,.,0,1,2,3,4,5,6,7,1,个字节,1,或,0,3.4,整型数据,3.4.1,整型常量,计算机中数的表示及进制转换,字节和位,数值的表示方法,原码、反码和补码,原码,最高位为符号位,其余各位为数值本身的绝对值,反码,正数:反码与原码相同,负数:符号位为,1,,其余位对原码取反,补码,正数:原码、反码、补码相同,负数:最高位为,1,,其余位为原码取反,再对整个数加,1,3.4,整型数据,3.4.1,整型常量,原码,反码,补码,+7,00000111,00000111,00000111,-7,1,0000111,1,1111000,1,1111001,+0,00000000,00000000,00000000,-0,10000000,11111111,00000000,数的范围,01111111,11111111,(-127+127),01111111,10000000,(-127+127),01111111,10000000,(-128+127),(用一字节表示数),负数补码转换成十进制数:最高位不动,其余位取反加,1,例:补码:,11111001,取反:,10000110,加,1,:,10000111=-7,练习,请将下面数用八进制和十六进制数(补码)表示,10,32,75,-617,-111,2483,-28654,21003,3.4,整型数据,整型数据在内存中的存放形式,数据在内存中以,二进制的补码,表示,每一个整型数据在内存中占两个字节,正数的补码和源码相同;负数的补码等于该数绝对值的源码加,1,整型数据分类,整型变量根据其数值的范围,可以将变量定义为三类:,基本整型(,int,),2,短整型(,short,int,),2,长整型(,long,int,),4,为了充分利用变量的表数范围,又可以将其划分为两类:,有符号数(,signed,),(可省略),无符号数(,unsigned,),组合起来就有六种:,int,short,int,long,int,unsigned,int,unsigned short,int,unsigned long,int,0,0,00,00,00,00,00,10,10,+10,1,1,11,11,11,11,11,01,10,-10,3.4.2,整型变量,3.4,整型数据,整数在存储单元的存储情况:以,13,为例:,0,0,00,00,00,00,00,11,01,0,0,00,00,00,00,00,00,00,0,0,00,00,00,00,00,11,01,00,00,00,00,00,00,11,01,int,型,short,型,00,00,00,00,00,00,11,01,long,型,unsigned,int,型,unsigned short,型,00,00,00,00,00,00,00,00,00,00,00,00,00,00,11,01,00,00,00,00,00,00,11,01,unsigned long,型,符号位,0,-32768,全,0,的时候,32767,全,1,的时候,int,型:,3.4.2,整型变量,3.4,整型数据,整型变量的定义,例如:,int,a,b,;,long,num,i,;,unsigned short,c,d,;,例,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,=%,dn”,c,d,);,a+u,=22,b+u=-14,3.4.2,整型变量,3.4,整型数据,值在,-3276832767,范围内,认为是,int,型,值在,-2147483648+214748647,内,认为是,long,int,型,八进制、十六进制常量的类型根据数值的大小可以是整型、无符号整型(,065535,)、长整型或无符号长整型,整数后有后缀,u,或,U,,认为是,unsigned,型,整数后有后缀,l,或,L,,认为是,long,int,型(在严格要求类型匹配的场合有用,如函数参数),123 123u -123u 123ul,-0123 0123u -0123l 0123ul,-0 x123 0 x123u -0 x123ul 0 x123ul,3.4.3,整型常量的类型,补充,(只适用于整型变量),1.,占用字节数为,n,的有符号整型变量,其值域为:,-2,n*8-1,(,2,n*8-1,-1),2.,占用字节数为,n,的无符号整型变量,其值域为:,0(,2,n*8,-1),3.5,实型数据,实数又称浮点数,有两种表示形式,十进制小数形式,例如:,0.345,、,.345,、,345.0,、,345.,、,0.0,、,0.,、,.0,指数形式,例如:,3.45e3,、,3.45E3,,都表示,3.45*10,3,注意:,e,前后必须有数字,,e,后必须为整型数,.3e3 3e3 3.e3,(合法),3e e3 e0.3,(不合法),实数的类型,缺省为,double,型,后缀,f,或,F,,为,float,型;后缀为,l,或,L,,为,long double,型,3.5.1,实型常量,3.5,实型数据,单精度(,float,):,占,4,个字节,,7,位有效数字,表示数的范围:,3.4e-383.4e+38,双精度(,double,):,占,8,个字节,,1516,位有效数字,表示数的范围:,1.7e-3081.7e+308,long double,型:,占,10,个字节,表示有效数的范围:,3.4e-49321.1e+4932,如:,float,x,y,;double,a,b,c,3.5.2,实型变量(取值范围与值的精度与及其有关),单精度浮点型,float,在,C,语言中用于存储单精度浮点数,float,32,位,10,-38,至,10,+38,,,7,位有效数字,声明:,float selling_price;,初始化:,float selling_price=11.3;,selling_price=65.90;,双精度浮点型,内存,float,double,213.5671435568967,64位,取值范围,:,10,-308,至,10,308,16,位有效数字,声明:,double pressure_level;,初始化:,pressure_level=213.5671435568967;,double dvalue=35.4;,【,例,】float,、,double,两种类型使用上的不同。,main(),float a;,double b;,a=66666.66666;,b=66666.666666666666;,printf(%fn%fn,a,b);,程序执行结果为:,66666.664062,66666.666667,从本例可以看出,由于a 是单精度型,有效位数只有七位。而整数已占五位,故小数二位之后均为无效数字。b 是双精度型,有效位为十六位。但Turbo C默认格式输出浮点数时,规定小数后最多保留六位,其余部分四舍五入。,3.5,实型数据,虽然实型数据在程序中的表示形式有两种,但是在内存中均是以指数形式存放。,3.5.3,实型数据的舍入误差,数符,阶符,小 数,指 数,例,3.3,#include,void main(),float,a,b,;,a=123456.789e5;,b=a+20;,printf(“a,=%,f,b,=%,fn”,a,b,);,a=12345678848.000000,b=12345678848.000000,若数据超过有效位数,则被舍去,故可能产生误差。,在线保险单,年龄,:_,保险总额,:_,性别,:_,3.6,字符型数据,23,98340,M,数值型,字符型,int/float,char,3.6,字符型数据,用单引号括起来的一个字符,如:,a,、,A,、,b,、,*,、,$,转义字符:特殊的字符常量,它们都已,开头。,(代表一个字符),如:,n,换行符,0,空值,t,横向跳格,v,纵向跳格,b,退格,a,报警,r,回车,f,走纸换页,输出反斜杠,输出单引号,ddd,13,位八进制数表示的字符(,ASCII,码),如:,101,代表字符,A,xhh,12,位十六进制数表示的字符(,ASCII,码),如:,x41,代表字符,A,3.6.1,字符常量,输出格式控制符,输出字符,3.6,字符型数据,用来存放变量,且只能存放一个字符。,定义方法:,char c1,c2;,unsigned char c3,c4;,字符型变量的赋值方法:,c1=a;c2=101;,65 A,c3=0 xff;,255,c4=377,255,十进制数向其它数转化:求商取余法,其它数向十进制数转化,展开法,3.6.2,字符变量,3.6,字符型数据,将一个字符常量存放到一个字符变量中,是将该字符相应的,ASCII,码存放到存储单元中。,3.6.3,字符数据的存储,例,3.4,:字符的存储与输出,#include,void main(),char c1,c2;,c1=a,c2=b;,printf(“%c,%cn”,c1,c2);,c1=97,c2=98;,printf(“%c,%cn”,c1,c2);,a b,a b,内存中,c1,、,c2,的存放形式:,97,01100001,c1,98,01100010,c2,3.6,字符型数据,字符数据与整形数据可以相互赋值,字符数据可以以字符形式输出,也可以用整数形式输出。,3.6.3,字符数据的存储,例,3.5,#include,void main(),int,i;,char c;,i=a;,c=97;,printf(“%c,%dn”,c,c,);,printf(“%c,%dn”,i,i,);,a,97,a,97,注意:,Turbo C,把字符数据处理成一个带符号的整形数据。,如:字符,a,的存储形式:,0,1 10 00 01,符号位,例,3.6,#include,void main(),char c;,c=376;,printf(“%c,%dn”,c,c,);,-2,八进制数,376,(十进制为,254,),ASCII,码字符为:,11,11,11,10,unsigned char c;,254,3.6,字符型数据,字符串常量:用一对,双引号,括起来的,字符序列,如:“,Hello”,,“,1999”,,“,a”,字符串结束标记,0,每一个字符串常量结尾都有一个字符,0,(系统自动加上),如:“,CHINA”,在内存中为:,3.6.4,字符串常量,C H I N A 0,a,是一个字符,而“,a”,是两个字符,大小写字母的转换,#include void main()char c1,c2;c1=,a,;c2=,b,;c1=c1-32;c2=c2-32;printf(,“,c c,c1,c2);,说明:,程序的作用是将两个小写字母a和b转换成大写字母A和B。从代码表中可以看到每一个小写字母比它相应的大写字母的码大。语言允许字符数据与整数直接进行算术运算。,运行结果:,3.7,变量赋初值,在定义变量的同时设置初值,亦称初始化,如:,int,a=3;,float f=3.56;,char c=a;,int,i,j,k,=5;,int,x=1,y=1,z=1;,3.8,不同类型数据间的混合运算,整型、实型(包括单、双精度)、字符型数据间可以混合运算,例如:,10+a+12.3-3.14*x,是合法的,运算时,不同类型的数据要先转换成同一类型,然后进行运算,转换规则:,高,低,double,int,unsigned,long,float,char,,,short,float,型数据在运算时一律先转换成,double,型,不同类型进行混合运算时,按照类型级别由低到高的顺序转换,字符型和,short,型在运算时一律转换成,int,型,3.9,算术运算符和算术表达式,3.9.1 C,运算符,1,、,算术运算符,+,-,*,/,%,2,、,关系运算符,=,|,&,5,、,赋值运算符,=,6,、条件运算符,?,:,7,、逗号运算符,8,、,指针运算符 *,&,9,、求字节运算符,sizeof,10,、强制类型转换运算符,11,、分量运算符,.,12,、下标运算符,13,、其它,算术运算,符与算术表达式,算术,一元,二元,操作数,操作数,运算符,二元运算符,3.9,算术运算符和算术表达式,3.9.2,算术运算符和算术表达式,基本的算术运算符,+,(加法运算符,或正值运算符),如:,2+3,、,+6,-,(减法运算符,或负值运算符),如:,3-4,、,-6,*,(乘法运算符),如:,2*x,/,(除法运算符),如:,(,x+y)/(a+b,),两个整数相除,其值为整数。如:,5/3,值为,1,除数、被除数有一个为负值时,结果“向零取整”如,-5/3,值为,-1,除数、被除数有一个为实数时,结果为,double,型,%,(模运算符,或求余运算符),%,两侧均为整型数据,如:,7%4,的值为,3,-7%4,、,7%-4,、,-7%-4,的值是多少?,(,-3,、,3,、,-3,)符号由被除数决定!,3.9,算术运算符和算术表达式,3.9.2,算术运算符和算术表达式,算术表达式和运算符的优先级与结合型,用算术运算符和括号将运算对象(也称操作数)连接起来的、符合,C,语言语法规则的式子,称为算术表达式,运算对象包括常量、变量、函数等,如:,3.14*r*r x+sqrt(0.25*y)/(abs(a+b)-3.6),运算符的优先级和结合型,优先级:,先*、,/,、,%,后,+,、,-,结合型:,左结合性。,即表达式从左向右计算。,强制类型转换,可利用强制类型转换将一个表达式转换成所需类型,形式:,(,类型名,),表达式,(,double)a,(,int)(x+y,),注意,(,int)(x+y,),和,(,int)x+y,不同,(float)(8%5),例,3.7,#include,void main(),float x;,int,i;,x=3.6;,i=(,int)x,;,printf(“x,=%,f,i,=%,d”,x,i,);,x=3.6,i=3,算术,一元,-,+,num+,num=num+1,num-,num=num-1,+num,-num,num+,num-,前缀,后缀,二元,表达式,如何计算,结果,(num1=5),num2=+num1;,num1=num1+1;,num2=num1;,num2=6;,num1=6;,num2=num1+;,num2=num1;,num1=num1+1;,num2=5;,num1=6;,num2=-num1;,num1=num1-1;,num2=num1;,num2=4;,num1=4;,num2=num1-;,num2=num1;,num1=num1-1;,num2=5;,num1=4;,算术运算,符与算术表达式,3.9,算术运算符和算术表达式,3.9.3,自增、自减运算符,+i,,,-i,在使用,i,之前,先使,i,的值加,1,或减,1,i+,,,i-,在使用,i,之后,再使,i,的值加,1,或减,1,例,3.8,:自增或自减运算,#include,void main(),int,i=0,j;,j=i+;,printf(“%d,%,dn”,i,j,),i=0;,j=+i,printf(“%d,%,d”,i,j,);,1 0,1 1,注意:,自增、自减运算符只能用于变量,而不能用于常量或表达式。,如:,5+,、,-(,a+b,),+,和,的优先级别高于算术运算符,结合方向是“自右向左”,如:,-i+,相当于,-(i+),3.10,赋值运算符,3.10.1,赋值运算符,“,=,”,用法:,变量,=,表达式,作用:,将表达式的值赋给变量(常量、变量时表达式的特例),如:,a=5;,ave,=(a+b)/10;,注意:与数学中的等式不同!,3.10,赋值运算符,实型数据,(包括单、双精度),赋给整型变量时,舍弃实数的小数部分,整形数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中,例,3.9,#include,void main(),int,i;,float f;,i=5.34;,f=23;,printf(“%d,%,f”,i,f,);,5 23.000000,3.10.2,赋值结果与类型转换,3.10,赋值运算符,3.10.2,赋值结果与类型转换,长度相同的有符号与无符号整型数间,原样赋值,(但数值有时会有变化),例,3.10,#include,void main(),unsigned a;,int,b=-1;,a=b;,printf(“%d,%un”,b,a,);,a=65534u;b=a;,printf(“%d,%un”,b,a,);,1,1,11,11,11,11,11,11,11,b,11,11,11,11,11,11,11,11,a,-1,65535,-2,65534,3.10,赋值运算符,3.10.2,赋值结果与类型转换,char,、,int,、,long,等类型的转换,“短”数据赋给“长”,变量,符号扩展:若高位为,1,(负数),则变量高字节位补,1,;反之,补,0,。,例,3.11,#include,void main(),char,c;int,i;,c=43;i=c;,printf(“i,=%,dn”,i,);,c=376;i=c;,printf(“i,=%,dn”,i,);,0,0 10,10,11,00,00,00,00,00,10,10,11,11,11,11,11,11,11,11,10,1,1,11,11,10,43,号字符,+53,254,号字符,+376,43,-2,3.10,赋值运算符,3.10.2,赋值结果与类型转换,char,、,int,、,long,等类型的转换,“短”数据赋给“长”,变量,“长”数据赋给“短”,变量,只将数据低字节位原封不动送到变量中(数据可能有差错),例,3.12,#include,void main(),int,i;,long L=6324232L;,i=L;,printf(“i,=%,d,L,=%ld,n”,i,L,);,0,0,00,00,00,01 10 00,00,10 00,00,00,00,00,10 00,L=6324232,1,0 00,00,00,00,00,10 00,i=-32760,i=-32760,L=6324232,3.10,赋值运算符,3.10.3,复合的赋值运算符,在赋值符“,=”,之前加上其它运算符构成复合运算符,+=,-=,*=,/=,%=,=,&=,=,|=,如:,a+=3,等价于,a=a+3,如:,b-=9,等价于,b=b-9,如:,x*=y+8,等价于,x=x*(y+8),如:,a/=,b+c,等价于,a=a/(,b+c,),如:,x%=3,等价于,x=x%3,3.10,赋值运算符,3.10.4,赋值表达式,赋值表达式:,由赋值运算符将一个变量和一个表达式连接起来的式子。,形式:,变量,=,表达式,如:,a=5,、,a=(b=5)(,右结合,),计算过程,计算赋值运算符右侧表达式的值,将计算结果赋给左侧的变量,赋值表达式的值就是被赋值的变量的值,例:,a=b=c=5,a=5+(c=6),a=(b=4)+(c+6),a=(b=4)+(c=6),a=(b=10)/(c=2),a+=a-=a*a,思考:,a=,a+(a,-(a*a)?,3.11,逗号运算符和逗号表达式,形式:,表达式,1,,表达式,2,,,,表达式,i,作用:,用于连接表达式,计算过程:,求解表达式,1,再求解表达式,2,,,,表达式,i,整个逗号表达式的值是表达式,i,的值,一个逗号表达式又可与另外一个逗号表达式组成一个新的逗号表达式,如:,(a=3*5,a*4),a+5,20,逗号运算符是所有运算符中级别最低的,如:,x=(a=3,6*3),x=18,如:,x=a=3,6*a,x=3,表达式值为,18,注意:并不是任何地方出现的逗号都是逗号运算符。,例,3.13,#include,void main(),int,a=1;,printf(“%dn”,a,=3*a,3*a);,3,a=(3*a,3*a);,9,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服