C++中运算符包含诸多种类,其中有:算术运算符,赋值运算符,比较运算符和逻辑运算符
每一种运算符及其作用如下表所示:
一,算术运算符1,加减乘除
其中,“+”,“-”运算符既可以代表加减运算,也可表示一个数的正负
#include<bits/stdc++.h>
using namespace std;
int main(){
int a1=10;
int b1=3;
cout<<a1+b1<<endl;//13
cout<<a1-b1<<endl;//7
cout<<a1*b1<<endl;//30
cout<<a1/b1<<endl;//3 10/3显然是循环小数,但在编译程序中,两个整数相除,结果依然是整数,将小数部分去除。
int a2=10;
int b2=20;
cout<<a2/b2<<endl;//0.5,保留整数部分,结果为0
int a3=10;
int b3=0;
cout<<a3/b3<<endl;//异常 除数不能当分母,运行中会直接造成程序中断(非法程序)
//两个小数可以相除
double d1=0.5;
double d2=0.25;
cout<<d1/d2<<endl; //2
double d3=0.5;
double d4=0.22;
cout<<d3/d4<<endl;//2.27273
}
运算结果:
从上述运算结果也可以看出,编译器在运算a3/b3时,即10/0便直接退出程序了,因为该代码段为非法
2,取模运算%
取模运算即是求余数,如:10%3=1 10%20=10
int a4=10;
int b4=3;
cout<<a4%b4<<endl;//1
int a5=10;
int b5=20;
cout<<a5%b5<<endl;//10
int a6=10;
int b6=0;
cout<<a6%b6<<endl; //非法运算
//两个数相除除数不能为0,因此也做不了取模运算
double d1=3.14;
double d2=1.1;
cout<<d1%d2<<endl;//非法运算
//另外,C++规定两个小数不能做取模运算
此外,关于取模运算,C++中还规定了两条规则:1,两个数相除除数不能为0,因此也做不了取模运算;2,取模运算的数必须是整数,两个小数不能做取模运算。
3,递增递减运算符 “++”,“--”
其中,递增递减运算符还有前置和后置的区别。
前置和后置的区别主要在于(以递增为例,递减类似):
前置递增:先让变量+1,然后进行相应表达式的运算;
后置递增:先进行相应表达式的运算,然后让变量+1;
#include<bits/stdc++.h>
using namespace std;
int main(){
//1,前置递增
int a=10;
++a;
cout<<"a="<<a<<endl; //a=11
//2,后置递增
int b=10;
b++;
cout<<"b="<<b<<endl;//b=11
//3,前置和后置的区别
//前置递增,先让变量+1,然后进行表达式运算
int a2=10;
int b2=++a2*10;//b2=11*10,先对a2+1,再进行运算
cout<<"a2="<<a2<<endl;//a2=11
cout<<"b2="<<b2<<endl;//b2=110
//后置递增,先进行表达式运算,后让变量+1
int a3=10;
int b3=a3++*10;//b3=10*10,先进行表达式运算,运算结束后再将a3+1
cout<<"a3="<<a3<<endl;//a3=11
cout<<"b3="<<b3<<endl;//b3=100
}
输出结果:
总结:前置递增先对变量进行++,再计算表达式,后置递增则相反。