本文主要介绍C++中常见的运算符,包括算术运算符、关系运算符、逻辑运算符和符合赋值等。
1、算术运算符//算术运算符
a+b //加法
a-b //减法
a*b //乘法
a/b //除法
a%b //取余
除法运算(/)
中,小数点后的部分会完全舍弃,不会进行四舍五入,若要获得余数部分,可以使用(%)
运算符。例如:
5/3 = 1 5%3 = 2
余数运算常见案例有:假设我们希望程序打印的数据每行不能超过8个字符,不满 8个字符用' '
代替,否则换行。
const int lin_size = 8;
int cnt = 1;
//以下语句会执行多次,每次执行完,cnt会增加1
cout << a_string << (cnt % lin_size ? " " : "\n");
这里有个特殊语句:(cnt % lin_size ? " " : "\n")
。就是条件运算符(conditional operator),语句表示:如果余数运算的结果为0,则条件运算符的输出为"\n"
;如果余数运算符的结果非0,则条件运算符输出" "
。条件运算符的一般形式为:
expr
? 如果expr为True,执行该语句
: 如果expr为False,执行该语句
注意:条件表达式的值为0,会被视为False
;其他非零值则被视为True
。上述例子中,如cnt
不是8的整数倍,条件表达式不为0,则执行'?'
后的部分。
符合运算符是一种比较简单的表达方式。若在某个对象上进行运算时,然后将运算结果赋予给该对象,我们可以这样写:
cnt+=1 //等同于 cnt=cnt+1
补充:递增(++)与递减(- -)的用法。
(1) 若将运算符前置到某个对象上,原对象值会先进行递增(或递减),然后在使用该对象。
int cnt = 1;
++cnt;
cout << cnt;//cnt值为2
(2) 若将运算符后置到某个对象上,原对象会先供给表达式使用,然后在行递增(或递减)。
int cnt = 1;
cnt++;
cout << cnt;//cnt值为1
3、关系运算符
关系运算符的结果为两种True
和False
。常见的关系运算符有如下六种:
a == b; //等于
a != b; //不等于
a < b; //小于
a > b; //大于
a <= b; //小于等于
a >= b; //大于等于
利用相等运算符==
体验用户的回答:
bool usr_more=True;
char usr_rsp;
//询问用户是否愿意继续下一个问题
//将用户的回答读入usr_rsp对象中
if(usr_rsp=='N')
usr_more=False;
if
语句之后的表达式运算结果为True
时,条件成立,执行后面的语句。但是如果usr_rsp
等于小写'n'
时,我们必须要对两者进行 *** 作,解决方法之一就是:
if(usr_rsp=='N')
usr_more=False;
else if(usr_rsp=='n')
usr_more=False;
注意:不要将赋值运算符(=)
和相等关系运算符(==)
相混淆。
常见的逻辑运算符有OR(||)
、AND(&)
、NOT(!)
利用逻辑运算符可以解决上述问题。上面的问题我们可以有另一种解法:
if(usr_rsp=='N' || usr_rsp=='n')
usr_more=False;
注意:逻辑运算符的原则是:短路求值法。
运算符优先级同一表达式会有多个运算符,求值的顺序是按照运算符事先定义好的优先级来决定。常见的运算符优先级如下(由高到低):
逻辑运算符 NOT
算术运算符 (*,/,%)
算术运算符(+,-)
关系运算符(<,>,<=,>=)
关系运算符(==,!=)
逻辑运算符 AND
逻辑运算符 OR
赋值运算符
注意:如果要改变内置运算符的优先级,可以利用小括号。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)