资源描述:
《三种基本结构的程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3.4C语言的运算符与表达式语言程序设计教程第三章基本数据类型C变量用来存放数据,运算符则用来处理数据。用运算符将变量和常量连接起来的符合C语法规则的式子被称为表达式。运算符的分类:单目运算符:只带一个操作数的运算符。如:++、--运算符。双目运算符:带两个操作数的运算符。如:+、-运算符。三目运算符:带三个操作数的运算符。如:?运算符。学习运算符时应注意:运算符的功能:该运算符主要用于做什么运算。与运算量关系:要求运算量的个数及运算量的类型。运算符的优先级:表达式中包含多个不同运算符时运算符运
2、算的先后次序。运算符的结合性:同级别运算符的运算顺序(指左结合性还是右结合性)。运算结果的类型:表达式运算后最终所得到的值的类型。C运算符算术运算符:(+-*/%++--)关系运算符:(<<===>>=!=)逻辑运算符:((!&&
3、
4、)位运算符:(<<>>~
5、^&)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*&)求字节数:(sizeof)强制类型转换:(类型)分量运算符:(.->)下标运算符:([])其它:(()-)7/24/20211优先级运算符结合规则1[
6、]()->.从左至右2!~++---*&sizeof从右至左3*/%从左至右4+-从左至右5<<>>从左至右6<<=>>=从左至右7==!=从左至右8&从左至右9^从左至右10
7、从左至右11&&从左至右12
8、
9、从左至右13?:从右至左14=+=-=*=/=%=&=^=
10、=>>=<<=从右至左15,从左至右7/24/202121.赋值运算符、赋值表达式语言程序设计教程第三章基本数据类型C赋值运算符(“=”,双目运算符)一般形式:变量=常量或变量或表达式功能:将右边常量或变量或表达式的值赋给左边变量
11、例如:intx,y,z;x=20;y=x;z=x+y;赋值表达式定义:由赋值运算符或复合赋值运算符(后面即将介绍),将一个变量和一个表达式连接起来的表达式,称为赋值表达式。一般格式:变量(复合)赋值运算符表达式赋值表达式的值:被赋值变量的值。例如:“a=5”这个赋值表达式,变量a的值“5”就是它的值。7/24/20213语言程序设计教程第三章基本数据类型C赋值语句例如:x=8;a=b=c=5;定义:赋值表达式在其后面加分号就构成了赋值语句。赋值运算符及赋值表达式的使用多个变量连续赋值例如:a=b
12、=c=10;a=(b=(c=10));结果:a、b、c的值都为10赋值表达式的嵌套例如:a=(b=2)+(c=3)(a=(b=2)+(c=3))结果:b为2,c为3,a为b+c即5注意:赋值语句“=”左边必须是变量名或对应某特定内存单元的表达式(后面的章节会遇到这样的表达式),不能是常量或其它表达式。例如:30=a;b+2=5;都是错误的。赋值语句中的“=”表示赋值,不是代数中相等的意思。要表示相等的意思则应用关系运算符“==”表示,二者切勿混淆!7/24/20214复合赋值运算:+=-=*=/
13、=%=[例]复合赋值运算符举例。main(){inta=3,b=9,c=-7;a+=b;c+=b;b+=(a+c);printf(“a=%d,b=%d,c=%d”,a,b,c);a+=b=c;printf(“a=%d,b=%d,c=%d”,a,b,c);a=b=c;printf(“a=%d,b=%d,c=%d”,a,b,c);}a=12,b=23,c=2a=14,b=2,c=2a=2,b=2,c=2返回7/24/20215优先级运算符结合规则1[]()->.从左至右2!~++---*
14、&sizeof从右至左3*/%从左至右4+-从左至右5<<>>从左至右6<<=>>=从左至右7==!=从左至右8&从左至右9^从左至右10
15、从左至右11&&从左至右12
16、
17、从左至右13?:从右至左14=+=-=*=/=%=&=^=
18、=>>=<<=从右至左15,从左至右7/24/20216[例]下述程序的输出结果#includemain(){inta=2;a%=4-1;printf(“%d,”,a);a+=a*=a-=a*=3;printf(“%d”,a);}A)2,0B)1,0
19、C)-1,12D)2,12A7/24/20217算术运算符:+-*/%-(取负)++----优先级:()++---*/%+---注:①其中%++--只能用于整型。②两个整数相除为整数,向零取整。③%:余数与被除数符号相同。算术表达式:由运算对象(常量、变量和函数等)、圆括号和算术运算符组成。表达式中所字符写在一行上。3.4.2算术运算符和算术表达式-5/3=-1-4%-3=1--a/(b1+5)-11%7*'a'的运算次序优先级运算符结合规则1[]()->.从左至右2!~++---*&sizeo