C语言的运算符也存在优先级和结合性的概念,在同一表达式中,优先级高的先结合,优先级相同时,就需要考虑结合性(分为左结合性和右结合性——对于单目、三目和赋值运算符表达式,从右至左运算;其他运算符表达式,从左至右运算)。
1、算术运算符
对于算术运算符,需要注意的是:整数相除结果为整数,%只能对整数进行求余。
++和--的用法是难点,分为前缀和后缀方式,应举例进行对比分析。
思考: 1/4等于多少?
[1/4=0,因为整数相除得整数,即对结果取整数,所以为0]
思考: 5%4、5%(−4)、(−5)%(−4)、(−5)%4等于多少?
正负数求余数的规则可以根据被除数和除数的符号不同而有所不同。以下是具体的规则:
当被除数为正数,除数为正数时,求余数的规则与正数对正数相除及取余的规则相同。
当被除数为负数,除数为正数时,求余数的规则可以表示为(−m)%n=−(m%n),其中m为被除数,n为除数。
当被除数为负数,除数为负数时,求余数的规则可以表示为(−m)%(−n)=−(m%n)。
当被除数为正数,除数为负数时,求余数的规则可以表示为m%(−n)=m%n。
通过上述规则,可以解决涉及正负数的求余数问题。例如,5%4=1,5%(−4)=5%4=1,(−5)%(−4)=−(5%4)=−1,(−5)%4=−(5%4)=−1。
其实就是:被除数为正,则余数为正;被除数为负,则余数为负。
2、赋值运算符
准确掌握赋值运算符的含义,复合赋值运算符是一种简写方式,举例说明即可理解。
3、关系运算符
4、逻辑运算符
注意:逻辑运算符具有非“0”即“真”的特性,以及短路特性:
5、条件运算符
对比:以条件运算符和条件语句对比来理解条件运算符的功能。
6、逗号运算符
7、不同数值型数据间的混合运算与类型转换
在实际应用中,经常会遇到类型转换(隐含转换/隐式转换,强制转换/显式转换),掌握自动类型转换规则图。
——隐含转换:先将低级别类型的运算对象向高级别类型进行转换,然后进行同类型运算。由C语言系统自动完成的,又称为自动类型转换。
——强制转换:通过强制类型转换运算符将表达式值转换为指定类型。