Skip to content

运算符

1.算数运算符

可以对两个数据进行算数运算

运算符描述实例
+对两个数字进行相加的计算int a = 10 + 10;
-对两个数字进行相减的计算int a = 10 - 5;
*对两个数字进行相乘的计算int a = 10 * 10;
/对两个数字进行相除的计算int a = 10 / 10;
%对两个数字进行求模运算(求余数)int a = 10 % 3;
c++
#include <iostream>
using namespace std;
int main() {
    cout << 10 + 3 << endl;         // 13
    cout << 10 - 3 << endl;         // 7
    cout << 10 * 3 << endl;         // 30
    cout << 10 / 3 << endl;         // 3     
    cout << 10 % 3 << endl;         // 1
    return 0;
}

注意:

  • 整型与整型的计算结果,还是整型。若计算结果含有小数,会自动小数部分去掉,只留整数
运算符描述实例
++自增运算符,整数值增加 110++,结果为11
--自减运算符,整数值减少 110--,结果为9
c++
#include <iostream>
using namespace std;
int main() {
    int num = 10;
    num++;
    cout << num << endl;        // 11

    int num1 = 20;
    num1--;
    cout << num1 << endl;        // 19
    return 0;
}

注意:自增/自减运算符可以放在变量的后面,也可以放在前面,而位置不对,逻辑顺序也不同

  • 放在变量前:先执行自增/自减的操作,然后取自增自减之后的值来使用
  • 放在变量后:代表先取变量的值使用,再执行自增/自减的操作。
c++
#include <iostream>
using namespace std;
int main() {
    int num = 10;
    cout << num++ << endl;        // 10
	cout << num << endl;		  // 11
    
    int num1 = 20;
    cout << ++num1 << endl;        // 21
    return 0;
}

由此可见,第一条打印语句执行时,先把num的值打印,再自增

而第二条打印语句先把num1的值加一,再打印,所以会是21

练习:在控制台上输入一个三位的数字,输出每一位的数字的和。例如,输入123,输出6

c++
#include <iostream>
using namespace std;
int main() {
    int num;
    cin >> num;
    int gewei = num % 10;
    int shiwei = num / 10 % 10;
    int baiwei = num / 100;
    cout << gewei + shiwei + baiwei << endl;
    return 0;
}

2.赋值运算符

运算符用法等同于描述
=x = y赋值,把右值赋值给左值
+=x += yx = x + y加法赋值,把左值上右值,再赋值给左值
-=x -= yx = x - y减法赋值,把左值上右值,再赋值给左值
*=x *= yx = x * y乘法赋值,把左值上右值,再赋值给左值
/=x /= yx = x / y除法赋值,把左值上右值,再赋值给左值
%=x %= yx = x % y取余赋值,把左值上右值,再把余数赋值给左值
<<=x <<= yx = x << y左移赋值,把左值向左移动右值的位数,再赋值给左值
>>=x >>= yx = x >> y右移赋值,把左值向右移动右值的位数,再赋值给左值
&=x &= yx = x &= y按位与,并赋值,把左值和右值按位且,再赋值给左值
^=x ^= yx = x ^= y按位异或,并赋值,把左值和右值按位异或,再赋值给左值
|=x ^= yx = x ^= y按位或,并赋值,把左值和右值按位或,再赋值给左值

3.比较运算符

对两个变量进行比较,最后的结果为布尔值

运算符用法描述
==x == y等于,比较值
!=x != y不等于
>x > y大于
<x < y小于
>=x >= y大于或等于
<=x <= y小于或等于

4.逻辑运算符

对两个布尔型的变量进行逻辑操作

运算符描述
&且运算,运算符两边都为true才为true,否则为false
||或运算,运算符两边有一边为true即为true,否则为false
!取反,!true即为false
&&短路与,左边的结果为真,则最后的结果为右边的结果;左边的结果为假,则右边的表达式不参与运算,最后的结果为直接为假
||短路与,左边的结果为真,则右边的表达式不参与运算,最后的结果为直接为真;左边的结果为假,则最后的结果为右边的结果

5.位运算符

对两个整形数字进行计算

运算符描述例子类似于结果十进制
&ANDx = 5 & 10101 & 000100011
|ORx = 5 | 10101 | 000101015
~取反x = ~ 5~01011010-6
^异或x = 5 ^ 10101 ^ 000101004
<<左移x = 5 << 10101 << 1101010
>>右移x = 5 >> 10101 >> 100102

6.三元运算符

语法

js
条件 ? 为true触发的逻辑 : 为false触发的逻辑

例子

c++
#include <iostream>
using namespace std;
int main() {
    string num = 10 < 11 ? "回答正确" : "回答错误";
    cout << num << endl;        // "回答正确" 
    return 0;
}

MIT Licensed