http://www.info.sicau.edu.cn新航线http://www.info.sicau.edu.cn新航线第二章运算符与表达式http://www.info.sicau.edu.cn四川农业大学计算机系新航线培训2.1C语言运算符简介初初等运算符等运算符()()[][]-->>..11自左至右自左至右(一)(一)单目运算符单目运算符!~++---(!~++---(类型类型)*&sizeof)*&sizeof22自右至左自右至左算算数运算符数运算符*/%*/%33自左至右自左至右+-+-44自左至右自左至右<<>>(<<>>(左移右移运算符)左移右移运算符)55自左至右自左至右关关系运算符系运算符<<=>>=<<=>>=66自左至右自左至右==!===!=77自左至右自左至右&&(按位与运算符)(按位与运算符)88自左至右自左至右^^(按位异或运算符)(按位异或运算符)99自左至右自左至右||(按位或运算符)(按位或运算符)1010自左至右自左至右逻逻辑运算符(不包辑运算符(不包括!)括!)&&&&1111自左至右自左至右||||1212自左至右自左至右(挑)条(挑)条件运算符件运算符?:?:1313自右至左自右至左(胡)赋(胡)赋值运算符值运算符=+=-=*=/=%=>>=<<=&=^=|==+=-=*=/=%=>>=<<=&=^=|=1414自右至左自右至左(豆)逗(豆)逗号运算符号运算符,,1515自左至右自左至右口诀:初一算关逻挑胡豆http://www.info.sicau.edu.cn四川农业大学计算机系新航线培训2.1C语言运算符简介运算符的结合性和优先级运算符的优先级运算符的优先级指不同的运算符在表达式中进行运算的先后次序。如:a+b*c当一个运算对象的两侧的运算符的优先级相同时,运算的结合方向称为结合性。运算符的结合性分为左结合和右结合两种。如:a+b+c运算符的结合性运算符的结合性http://www.info.sicau.edu.cn四川农业大学计算机系新航线培训表达式表达式用运算符将操作对象连接起来、符合C语法规则的式子称为表达式。每一个表达式也都具有一定的值。如:8>9的值为0,9>7的值为1,7+9的值为16逗号运算符和逗号表达式一般形式为:表达式1,表达式2,表达式3,…,表达式n逗号表达式的值:逗号表达式的值:等于表达式等于表达式nn的值的值如:x=(7+8,9,80)x的值为802.1C语言运算符简介http://www.info.sicau.edu.cn四川农业大学计算机系新航线培训5.5%25.5%22.2算术运算符和算术表达式基本算术运算符:基本算术运算符:+-*/%+-*/%取整取整::两整数相除,结果为整数两整数相除,结果为整数例例:5/2=23/4=0:5/2=23/4=0区别:区别:-5/2.0=-2.53.0/4=0.75-5/2.0=-2.53.0/4=0.75取余取余(%):(%):两整数相除,结果为他们的余数;两整数相除,结果为他们的余数;要求两侧必须都为整型数据要求两侧必须都为整型数据。。如:如:-5%2=-11%10=15%1=0-5%2=-11%10=15%1=0区别(int)5.5/2http://www.info.sicau.edu.cn四川农业大学计算机系新航线培训例:求出整数457的个位、十位、百位。分析:1.求个位的方法:457%102.求十位的方法:457/10%103.求百位的方法:457/100或457/10/10%102.2算术运算符和算术表达式定理:1.任何一个整数除以10取整则去掉这个整数的个位2.任何一个整数除以10取余则得到这个整数的个位http://www.info.sicau.edu.cn四川农业大学计算机系新航线培训自增自减运算符2.2算术运算符和算术表达式作用:使变量的值增1或减1。前置:(先执行i=i+1或i=i-1,再使用i值)如:i=1;a=++i;a=2;(i=2)i=1;a=--i;a=0;(i=0)后置:(先使用i值,再执行i=i+1或i=i-1)如:i=1;a=i++;a=1;(i=2)i=1;a=i--;a=1;(i=0)++--不能用于常量和表达式如:5++,(a+b)++http://www.info.sicau.edu.cn四川农业大学计算机系新航线培训2.3赋值运算符和赋值表达式简单赋值运算符简单赋值运算符==如:如:a=9a=9复合赋值运算符:复合赋值运算符:+=-=*=/=%=<<=>>=&=^=|=+=-=*=/=%=<<=>>=&=^=|=例:例:aa++=5=5-->a=a>a=a++a*=ca*=c++55-->a=a*(c+5)>a=a*(c+5)==左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式结合方向:自右向左结合方向:自右向左例:intx,y;x=3;y=5;表达式x%=y/=2的值为?x%=y/=2x%=y/=2先算先算y/=2y/=2y=5/2y=y=5/2y=22再算再算x%=2x%=2x=3%2x=1x=3%2x=1http://www.in...