3 运算符

**作用:**用于执行代码的计算

主要有一下几种运算符:

运算符类型作用
算术运算符用于处理四则运算
赋值运算符用于将表达式的值赋给变量
比较运算符用于表达式的比较,返回一个真值或假值
逻辑运算符用于根据表达式的值返回真值或假值

3.1 算术运算符

**作用:**用于处理四则运算

包括一下符号:

运算符术语示例结果
+正数+3+3
-负数-4-4
+加号4+59
-减号6-33
*乘号6*742
/[^1]除号94/713
%取模(取余)10%31
++前置递增a=2 b=++aa=3 b=3
++后置递增a=2 b=a++a=3 b=2
前置递减a=2 b=—aa=1 b=1
后置递减a=2 b=a—a=1 b=2

示例1四则运算的示例

int main()
{
    int a1 = 10;
    int b1 = 7;
    cout<<a1 + b1 <<endl;
    cout<<a1 - b1 <<endl;
    cout<<a1 * b1 <<endl;
    cout<<a1 / b1 <<endl; //这里为整除运算,结果也会为整数
 
    float a2 ;
    float b2 ;
    cout<<"请输入两个浮点数"<<endl;
    cin >> a2;
    cin >> b2;
    cout<< "a2除以b2的值为"<<a2 / b2<<endl; //这里是非整除
    
    system("pause");
    return(0);
}
  • 取模运算本质就是取余数
  • 两个小数之间不能做取模运算

前置递增与后置递增

  • 前置,后置递增都是使变量进行加一的操作
  • 前置递增:先对变量进行递增,再进行表达式运算
  • 后置递增:先进行表达式的运算,再对变量递增
int main()
{
    //前置运算
    int a = 10;
    int b = 3;
    int r1 = ++a * b; 
    cout<<"r1="<< r1 <<endl; 
 
    //后置运算
    int a2 = 10;
    int b2 = 3;
    int r2 = a2++ * b2; 
    cout<<"r2="<< r2 <<endl;
    cout<<"a2="<<a2<<endl; 
 
    system("pause");
    return(0);
}

image-20240813180013807

  • 我们不难发现,在上述代码运算过程中我们的”a”变量先被加1再参与到了运算之中,而我们的”a2”变量则是再运算结束后才被加1


3.2赋值运算符

**作用:**将表达式的值赋给变量

主要包括以下几个符号:

运算符术语示例结果
=赋值a=10a=10
+=加等于a=10 a+=2a=12
-=减等于a=10 a-=2a=8
*=乘等于a=10 a*=2a=20
/=除等于a=10 a/=2a=5
%=取模等于a=10 a%=2a=0

3.3 比较运算符

**作用:**用于比较表达式的真假,并返回一个真值或假值

主要有以下的符号:

运算符术语示例结果
==相等于4 == 30
!=不等于4 != 31
<小于4 < 30
>大于4 > 31
小于等于4 30
>=大于等于4 >= 31

tips:再代码中由于有优先级的影响,我们可以这么提升运算优先级 cout << (a == b)<< denl;

3.4 逻辑运算符

**作用:**用于根据表达式的值返回真值或假值

主要有以下符号:

运算符术语示例结果
!a如果a为假,则!a为真;如果a为真,则!a为假
&&a&&b如果a和b都为真,则结果为真,否则为假
||a||b如果a和b中有一个为真,则结果为真,二者都为假的时候,结果为假

3.4.1 逻辑非

int main()
{
    //逻辑非
    int a= 10 ;
    cout << !a << endl;
    //运算结果为 0 (解释:在C++中,只要结果不为0,都视为真,故输出结果为假)
    cout << !!a << endl;
    //结果为1,取了两次反(从真变假再变真)
    system("pause");
    return(0);
}

总结:真变假,假变真

3.4.2 逻辑与

int main()
{
    // 逻辑与
    int a = 10;
    int b =10;
    cout << (a&&b) << endl; //此处也要优先运算
    //运算结果为 1 (真)
    a = 10;
    b = 0;
    cout << (a&&b) << endl;
    //运算结果为 0 (假)
    a = 0;
    b = 0;
    cout << (a&&b)<<endl;
    //运算结果为 0 (假)
    system("pause");
    return(0);
}

总结: 同真为真,其余为假

3.4.3 逻辑或

int main()
{
    //逻辑或
    int a = 10;
    int b = 10;
    cout << (a||b)<<endl;
    //结果为1
 
    a = 0;
    b = 10;
    cout << (a||b)<<endl;
    //结果仍为1
    a=0;
    b=0;
    cout << (a||b)<<endl;
    //结果为0
    system("pause");
    return(0);
}

总结: 同假为假,其余为真