C++ 面试题 目录

C++ 中什么是赋值运算符 (assignment operator)?

推荐答案

在 C++ 中,赋值运算符(assignment operator)是一个用于将右侧操作数的值赋给左侧操作数的运算符。最常用的赋值运算符是 =,它将右侧的值赋给左侧的变量。例如:

除了基本的 = 运算符,C++ 还提供了复合赋值运算符,如 +=-=*=/= 等,这些运算符在赋值的同时还会执行相应的算术运算。例如:

本题详细解读

赋值运算符的基本概念

赋值运算符 = 是 C++ 中最基本的运算符之一,用于将右侧的值赋给左侧的变量。赋值操作的结果是左侧变量被赋予右侧的值,并且整个表达式的值也是右侧的值。

复合赋值运算符

C++ 提供了多种复合赋值运算符,这些运算符在赋值的同时还会执行相应的算术运算。常见的复合赋值运算符包括:

  • +=:加法赋值
  • -=:减法赋值
  • *=:乘法赋值
  • /=:除法赋值
  • %=:取模赋值
  • &=:按位与赋值
  • |=:按位或赋值
  • ^=:按位异或赋值
  • <<=:左移赋值
  • >>=:右移赋值

例如:

赋值运算符的返回值

赋值运算符 = 的返回值是左侧变量被赋值后的值。这意味着赋值表达式可以嵌套在其他表达式中使用。例如:

自定义类型的赋值运算符

对于自定义类型(如类或结构体),C++ 允许重载赋值运算符 =。通过重载赋值运算符,可以定义自定义类型的赋值行为。例如:

-- -------------------- ---- -------
----- ------- -
-------
    --- ------
    -------- --------------- -------- ------ -
        -- ----- -- ------- -  -- -----
            ----- - ------------
        -
        ------ ------  -- ---------
    -
--

------- ----- -----
---------- - --
---- - -----  -- ------------ ---- ---- ----

注意事项

  • 赋值运算符 = 与相等运算符 == 不同,前者用于赋值,后者用于比较。
  • 在使用复合赋值运算符时,要注意运算符的优先级和结合性。
  • 对于自定义类型,重载赋值运算符时要注意处理自赋值的情况,以避免潜在的错误。
纠错
反馈