【C++造神计划】运算符

本文详细介绍了C++编程中的各种运算符,包括赋值、数学、组合、递增/递减、条件、比较、逻辑、逗号运算符以及类型转换,展示了它们的语法、用法和示例,帮助读者理解和掌握C++语言的基础知识。
摘要由CSDN通过智能技术生成

1 赋值运算符

赋值运算符的功能是将一个值赋给一个变量

int a = 5; // 将整数 5 赋给变量 a 

运算符左边的部分叫作 lvalue(left value),右边的部分叫作 rvalue(right value)

  • 左边 lvalue 必须是一个变量

  • 右边 rvalue 可以是一个常量、一个变量、一个运算(operation)的结果或是前面几项的任意组合

  • 赋值运算符永远是将右边的值赋给左边,不会反过来。

  • 将变量 b(rvalue)的值赋给变量 a (lvalue),不论 a 当时存储的是什么值

  • 只是将 b 的数值赋给 a,以后如果 b 的值改变了,并不会影响到 a 的值

Example 1

  • C++ 拥有而其他语言没有的一个特性是赋值符(=)可以被用作另一个赋值符的 rvalue(或 rvalue的一部分)

// 先将 5 赋给变量 b,然后把前面对b的赋值运算的结果(即 5)加上2 再赋给变量 a,这样最后a中的值为7
a = 2 + (b = 5);

Example 2

a = b = c = 5; //将5同时城给3个变量a、b和c 

2 数学运算符

数学运算符

  • +(加,adldition)

  • -(减,subtraction)

  • *(乘,multiplicu∶.on)

  • /(除,division)

  • %(取模,module)

3 组合运算符

组合运算符(+=、 -、* 和 /= 及其他),这些运算符使得只用一个基本运算符就可以改写变量的值

value += increase;   // 等同于value = value + increase
a -= 5;
a /= b;
price *= unita + 1;  // 等同于price = price * (unita + 1);

 

4 递增和递减

  • 递增(increase)运算符(++)

  • 递减(decrease)运算符(--)

它们使得变量中存储的值加 1或减1,分别等同于+=1和-=1

示例

a++;
a += 1;
a = a+1;
  • 注意 a++ 和 ++a 在运算式中代表不同的意思∶

    • 前缀(++a),变量 a 的值先增加,再计算整个表达式的值

    • 后缀(a++),变量 a 的值在表达式计算后才增加

#include <iostream>
using namespace std;

int main()
{
    int a = 3;          // a = 3
    cout << a << endl;

    int b = ++a;        // a = 4, b = a = 4
    cout << a << endl;
    cout << b << endl;

    int c = a++;        // c = a = 4, a + 1 = 5
    cout << a << endl;
    cout << c << endl;
    return 0;
}

5 条件运算符三目运算符

语法格式

condition ? result1 : result2 

 如果条件为true,整个表达式返回result1,否则返回result2。

7==5 ? 4:3      // 返回3,因为7不等于5. 
7=-5+2 ? 4:3    // 返回4,因为7等于5+2。 
5>3 ? a:b       // 返回a,因为5大于3。
a>b ? a:b       // 返回较大值,a或b。
#include <iostream>
using namespace std;

int main ()
{
  int a,b,c;

  a=2;
  b=7;
  c = (a>b) ? a : b;

  cout << c <<endl;

  return 0;
}

 

6 比较运算符

比较运算的结果是一个 bool 值,根据运算结果的不同,它的值只能是 true 或 false

  • == 相等(Equl)

  • != 不等(Different)

  • \> 大于(Greater than)

  • < 小于(Lessthan)

  • \>= 大于等于(Greater or equal than)

  • <= 小于等于(Less or equal than)

示例

(7 == 5)将返回 false
(5 > 4)将返回 true
(3 != 2)将返回 true
(6 > 6)将返回 false

#include <stdio.h>

int main()
{
    bool var = (7==5);
    printf("value of var: %s.\n", var==true? "true" : "false");
    return 0;
}

 在 ANSI-C++ 标准出现之前,许多编译器中,就像 C 语言中,关系运算并不返回值为 true 或 false 的 bool 值,而是返回一个整型数值为结果,它的数值可以为 0,代表 false,或一个非0数值(通常为1),代表 true

7 逻辑运算符

  • !: 等同于 boolean 运算 NOT (取非)

  • &&: 逻辑与运算(AND)

  • ||: 逻辑或运算(OR)

示例

!true  // 返回 false
!false // 返回 true

#include <stdio.h>

int main()
{
    bool var = (!true);
    printf("value of var: %s.\n", var==true? "true" : "false");

    int a = 10;
    var = (a < 0 || a > 10);
    printf("value of var: %s.\n", var==true? "true" : "false");
    return 0;
}

8 逗号运算符

逗号运算符(,)用来分开多个表达式,并只取最右边的表达式的值返回

Example

a = (b = 3, b + 2);

这行代码首先将 3 赋值给变量 b,然后将 b+2 赋值给变量 a。所以最后变量 a 的值为 5,而变量 b 的值为 3

9 变量类型转换运算符

  • 变量类型转换运算符可以将一种类型的数据转换为另一种类型的数据

  • 在原转换的表达式前面加用括号"()"括起来的新数据类型

Example

int i;
float f = 3.14;
i = (int)f;

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值