资源描述:
《c语言运算符与表达式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三讲运算符与表达式内容摘要:1,变量赋初值2,掌握C语言中的各种运算符3,掌握运算符的优先级与结合性教学重点:C语言中各种运算符的使用教学难点:混合表达式中运算符的运算顺序运算符与表达式2.6变量赋初值程序中常需要对一些变量预先设置初值。C语言允许在定义变量时对变量赋初值----变量的初始化。inta=3;/*指定a为整型变量,初值为3*/floatf=3.56;/*指定f为实型变量,初值为3.56*/charc='a';/*指定c为字符变量,初值为'a'*/1.可以对定义变量的一部分初始化如:inta,b,c=5;2.如果对几个
2、变量赋以同一个初值,不能写成:inta=b=c=3;而应写成:inta=3,b=3,c=3;3.初始化不是在编译阶段完成的,而是在程序运行时,执行函数时赋初值的,相当于有一个赋值语句。例如:inta=3;相当于:inta;a=3;2.7运算符和表达式C的运算符有以下几类1.算术运算符(+-*/%)2.赋值运算符(=及其扩展赋值运算符)3.逗号运算符(,)4.关系运算符(><==>=<=!=)5.逻辑运算符(!&&
3、
4、)6.位运算符(<<>>~
5、∧&)7.条件运算符(?:)8.其它2.7.1C语言运算符2、学习运算符应注意:运算符功能
6、与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向运算结果的类型2.7运算符和表达式2.7.1C语言运算符2.7运算符和表达式C语言允许使用以下类型的表达式2.7.2C语言表达式类型(1)赋值表达式,如:a=1(6)逗号表达式,如:a=1,b=2,c=3(2)算术表达式,如:1*2+3/4.5(3)关系表达式,如:4>7(4)逻辑表达式,如:8>4&&ab?a:b2.7运算符和表达式2.7.3表达式的求值规则(1)按运算符的优先级别高低次序执行。(2)如果运算对象两侧优先级别相同,则按规定的
7、“结合方向”处理。如:算术运算符的结合方向为“从左至右”赋值运算符的结合方向为“从右至左”1.基本的算术运算符+(加法运算符,或正值运算符。如3+5、+3)-(减法运算符,或负值运算符,如5-2、-3)*(乘法运算符。如3*5)/(除法运算符。如5/3)%(模运算符,或称求余运算符,要求%两侧均为整型数据,如7%4的值为3)。说明1.两个整数相除结果为整数。2.如果参加运算的两个数中有一个数为实数,则结果是double型。2.7运算符和表达式2.7.4算术运算符和算术表达式2.算术表达式和运算符的优先级与结合性用算术运算符和括号将运
8、算对象(也称操作数)连接起来的、符合C语法规则的式子,称C算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C算术表达式:a*b/c-1.5+'a’在表达式求值时:先按运算符的优先级别高低次序执行同一优先级的运算符,运算次序由结合方向决定C语言规定了运算符的优先级和结合性。算术运算符的结合方向为“自左至右”,即先左后右.单目运算符、三目运算符、赋值运算符的结合方向为“自右至左”,即先右后左.2.7运算符和表达式2.7.4算术运算符和算术表达式运算符的优先级(由高到低)附录B初等运算符()[]->.单目运算符算术运算符
9、(先乘除,后加减)关系运算符逻辑运算符(不包括!)条件运算符赋值运算符逗号运算符2.7运算符和表达式3.强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型。一般形式:(类型名)(表达式)例如:(double)a(将a的值转换成double类型)(int)(x+y)(将x+y的值转换成整型)(float)(5%3)(将5%3的值转换成float型)强制类型转换时,得到一个所需类型的中间量,原来变量的类型未发生变化。main(){floatx;inti;x=3.6;i=(int)x;printf("x=%f,i=%d
10、"x,i);}运行结果如下:x=3.600000,i=32.7运算符和表达式4,自增、自减运算符++--作用:使变量值加1或减1种类:前置++i,--i(在使用i之前,先使i的值加(减)1)后置i++,i--(先使用i值,再使i的值加(减)1)例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);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=42.7运
11、算符和表达式说明:++--不能用于常量和表达式,如5++,(a+b)++++--结合方向:自右向左[例]自增、自减运算符的用法与运算规则示例。/*程序功能:自增、自减运算符的用法与运算规则示例*/main(){intx=6,y;pri