运算符、表达式,是编程语言的基石。对于C++,它兼容 C语言的运算符的同时也稍微改动和增加了一些运算符到其中。

基本算术运算符

表示运算符
+
-
*
/
取余数%
cout << 1+2 <<endl;
//加法运算,结果:3
cout << 1-1 <<endl;
//减法运算,结果:0;
cout << 5*2 <<endl;
//乘法运算,结果:10;
cout << 10/5 <<endl;
//除法运算,结果:2;
cout << 49 % 2 <<endl;
//求余运算符,结果:1;


正负数表示
+3正数
-3负数
cout << +3 <<endl;
//正数,结果:3;
cout << -3 <<endl;
//负数,结果:-3;
cout << +3 << -3 << endl;
//字符串拼接,结果:3-3
  • 算数表达式

()优先运算

()括号,在数学中,意味着优先运算。
在编程语言中也是如此。

//加括号的运算
cout << +3 << (-3+3)*6 << endl;
//结果:30
//不加括号的运算
cout << +3 << -3+3*6 << endl;
//结果:315
  • 赋值和扩展运算符

=赋值
+=加法赋值
-=减法赋值
/=除法赋值
*=乘法赋值
%=求余赋值

= 赋值,意味着把1个值赋给另1个值。
需要注意的是,它不是等于号,在许多编程语言中代表赋值的操作。

//赋值操作
int age = 19;
age = 20;
cout << age <<endl;
//开始age赋值为19,但后面 age 又赋值了20, 至此age等于20 结果:20

+= 加法赋值

int x = 19;
int b = 1;
b = b += x;
cout << b << endl;
//b的值加上x值并重新赋值给b,结果:20

-= 减法赋值

int x = 21;
int b = 20;
b = b -= x;
cout << b <<endl;
//b的值减上x值并重新赋值给b,结果:-1

*= 乘法赋值

int a =3;
int b =2;
b = b*=a;
cout << b <<endl;
//b的值乘a的值并重新赋值给b,结果:6

/= 除法赋值

int a = 6;
int b = 3;
b = a/=b;
cout << b <<endl;
//a 的值除 b 并重新赋值给 b,结果:2

自增与自减

++自增
- -自减
//先赋值后自增
int a = 2;
int b = a++;
//结果:a=3;b=2;
//先自增后赋值
int a = 2;
int b = ++a;
//结果:a=3;b=3;
//先自减后赋值
int a = 2;
int b = --a;
结果:a=1;b=1;
//先赋值后自减
int a = 2;
int b = a--;
结果:a=1;b=2;

逻辑运算符

&&
ll
!
==相等
//相等
int a = 10;
int b = 10;
bool x = a==b;
cout << x <<endl;
//结果:1(true)
//非
int a = 10;
int b = 11;
bool x = a!=b;
cout << x <<endl;
//结果:0(false)
//与
int a = 10;
int b = 10;
bool x = a&&b==10;
cout << x <<endl;
//a与b等于10,结果:1(true)
//或
int a = 10;
int b = 11;
bool x = a||b ==10;
cout << x <<endl;
//a或b等于10,结果:1(true)

三目运算符

作用:实现简单的条件判断
语法:

表达式1 ? 表达式2 : 表达式3

如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
如果表达式2的值为假,执行表达式3,并返回表达式3的结果;

示例

#include <iostream>
using namespace std;
int main(){
    int a;
    cin >> a; 
    a = (a==5?100:500);
    cout << "a = " << a <<endl;
    system("pause");
    return 0;
}

运行结果:

输入5,输出100
输入非5,输出500

优先级

编程与数学一样,运算符之间也有一套运算的优先级。
需要注意的是,每个编程语言可能部分运算符优先级不一样。

C++的运算符优先级:

优先级运算符结合性
1() [] .从左到右
2! +正 -负 ~ ++ - -从右向左
3* / %从左向右
4+加 -减从左向右
5<< >> >>>从左向右
6< <= > >= instanceof从左向右
7== !=从左向右
8&从左向右
9^从左向右
10l从左向右
11&&从左向右
12ll从左向右
13?:从右向左
14= += -= *= /= %= &= l= ^= ~= <<= >>= >>>=从右向左

基本运算符总结:

运算符术语示例结果
+正号+33
-负号-3-3
+10+515
-10-55
*10*550
/10/52
%取余49%21
++先自增后赋值a=2;b=++a;a=3;b=3;
++先赋值后自增a=2;b=a++;a=3;b=2;
- -先自减后赋值a=2;b=--a;a=1;b=1
- -先赋值后自减a=2;b=a--;a=1;b=2
==等于a=2;b=2; a==b;true
+=加法赋值a=3;b=1;b+=a;b = 4;
-=减法赋值a=3;b=1;b-=a;b = -2;
*=乘法赋值a=3;b=2;b*=a;b = 6;
/=除法赋值a=2;b=6;b/=a;b = 3;
%=求余赋值a=20;b=21;b=b%=a;b = 1;
&a=1;b=2; a&b ==1false
la=1;b=2; a l b==1true
!a=2;b=1; a !=b;true
文章目录