本章节将介绍C语言运算符的基本知识,其中包括赋值运算符、算数运算符、关系运算符、逻辑运算符。
1、 赋值运算
⑴ 把右边的值赋给左边的变量,赋值从右向左算。
int i, j, k;
i = j = k = 0; // k=0, j=k, i=j,可以但不推荐
⑵ 左边必须是一个左值(变量), 不能是常数或表达式。
0 = i; // 错误
i + j = 0; // 错误
⑶ 赋值表达式的左值即是赋值表达式的值。
int i;
i = 1; // 整个赋值表达式的值即为i的值
⑷ 赋值可以和其它运算符结合使用,谓之复合赋值。
i += 3; // 等同于:i = i + 3;
j *= 3; // 等同于:j = j * 3;
⑸ =代表赋值, ==代表相等。
2、 算术运算
⑴ 加(+)、减(-)和乘(*)。
int i = 10;
int j = 5;
int num = 0;
num = i + j; // num等于15
num = i–j; // num 等于5
num = i * j; // num 等于50
⑵ 除(/)和模(%)
– 整数相除,向0取整(取更靠近0的数字)。
int num;
num = 5 / 2; // num等于2
– 对0做/和%会中断程序, /0.0得到无穷大(inf)。
– %只能用于整数,实数不支持。
int num;
num = 5 % 2; // num等于1
– %的正负号与%前面数字的正负号相同。
⑶ 自增减运算
– ++/--, 变量自增/自减1,不能用于常数。
5++; // 错误
– 整型实型均可自增减,但主要用于整型。
– 前缀表达式,先自增减,后运算。
int i = 5;
int j = 5;
int num = 0;
num = ++i + j; // num等于11
– 后缀表达式,先运算,后自增减。
int i = 5;
int j = 5;
int num = 0;
num = j+i++; // num等于10
– i、 i++和++i,从内存上说是同一块内存区域。
– i++/++i最好单独作为一个语句出现。
3、 关系运算
⑴ 大于(>)和大于等于(>=)
⑵ 小于(<)和小于等于(<=)
⑶ 等于(==)和不等于(!=)
⑷ 关系表达式的值是真和假,分别用1和0表示。
int i = 5;
int j = 2;
int num = 0;
if(i > j) //此关系表达式的值为真
{
num = i – j; // num等于3
}
4、 逻辑运算
⑴与(&&)、或(||)和非(!)
– 与:并且,全真则真, 否则为假
– 或: 或者,全假则假, 否则为真
– 非:反之,非真即假,非假即真
⑵逻辑表达式的值是真和假,分别用1和0表示。
⑶与(&&)的运算特征:短路与,即若第一个表达式为假,则结果为假,后面
的表达式不再计算。
int i = 5;
int j = 2;
if((i > 10) && (j++ ))
{
;
}
//第一个表达式为假,则后面的j++不再计算,所以j的值依然为2。
⑷或(||)的运算特征:短路或,即若第一个表达式为真,则结果为真,后面
的表达式不再计算。
int i = 5;
int j = 2;
if((i < 10) || (j++ ))
{
;
}
//第一个表达式为真,则后面的j++不再计算,所以j的值依然为2。
本章节完毕。
下一章节将介绍C语言的运算符(第二部分)。