第四回合:运算符和表达式
A: C语言的运算符可分为以下几类:
1. 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2. 关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3. 逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4. 位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
5. 赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6. 条件运算符:这是一个三目运算符,用于条件求值(?:)。
7. 逗号运算符:用于把若干表达式组合成一个表达式(,)。
8. 指针运算符:用于取内容(*)和取地址(&)二种运算。
9. 求字节数运算符:用于计算数据类型所占的字节数(sizeof)。
10. 特殊运算符:有括号(),下标[],成员(→,.)等几种。
PS:
(a) 除法运算符(a/b)
(1) b不能为0;
(2) 当a和b都是或有一个是实数时,两数相除,结果是实数;
(3) 当a和b都是整数,相除后,结果取整数部分;
(b) 取余运算(a%b)
(1) b的值不能为0,且a和b都必须是整数
(2) a能整除b,结果为0;a不能整除b,结果为a除b的余数
(c) 赋值运算符是“=”,不是“==“。
(d) 赋值表达式:变量=表达式
赋值表达式的左边只能是变量,不能是表达式
即a=b+c; //合法
a+b=c; //不合法
(e) ++i和i++的区别 (--i和i—也是一样)
++i;就是i先加一后再运算
i++就是i先运算后再加一
如:int i=0;
printf(“i=%d”,i++);
intj=0;
printf(“j=%d”,++j);
打印的结果:
i= 0;
j=1;
(f) 逻辑运算(按优先级排列,由高到低)
(1) 逻辑非:!
(2) 逻辑与:&&
(3) 逻辑或: ||
(g) 条件表达式(?:)
表达式1?表达式2:表达式3
说明:如果表达式1为真,则执行表达式2;反之执行表达式3
如:3>8 ? a=0 : b=1;
因为3< 8,所以执行a= 0这条语句,b= 1不执行,结果是a= 0;
(h) 位运算符号
& 按位与 |按位或
^ 按位异或 ~取反
<< 左移 >>右移
说明:位运算符号中除了~以外,均为二目运算符;按位量只能是整型或字符型的数据,不能为实型数据。
(i) 位运算和赋值运算的结合
&= 如:a&=b; 等价于a= a& b;
|= 如:a|= b 等价于a= a| b;
还有:
<<= >>= ^=
(复习做的笔记,还在整理中。。。。)