C++程序中的赋值运算符

简介: C++程序中的赋值运算符

C++编程中,赋值运算符是用于将一个值赋给变量的符号。C++提供了多种赋值运算符,每种都有其特定的用途和规则。理解和掌握这些赋值运算符对于编写有效的C++程序至关重要。

一、基本赋值运算符

最常用的赋值运算符是等于号(=)。它用于将右侧表达式的值赋给左侧的变量。

```cpp
#include <iostream>
using namespace std;

int main() {
    int x = 10;
    x = 20; // 将20赋值给x
    cout << "x = " << x << endl; // 输出 x 的新值,即 20

    return 0;
}
```

除了基本的赋值运算符外,C++还提供了复合赋值运算符,它们结合了算术运算和赋值操作。

1. 加法赋值运算符(+=):将左侧变量与右侧表达式的值相加,并将结果赋值给左侧变量。

2. 减法赋值运算符(-=):将左侧变量与右侧表达式的值相减,并将结果赋值给左侧变量。

3. 乘法赋值运算符(*=):将左侧变量与右侧表达式的值相乘,并将结果赋值给左侧变量。

4. 除法赋值运算符(/=):将左侧变量与右侧表达式的值相除,并将结果赋值给左侧变量。

以下是一个使用复合赋值运算符的示例:

```cpp
#include <iostream>
using namespace std;

int main() {
    int y = 5;

    y += 3; // 等同于 y = y + 3
    cout << "y = " << y << endl; // 输出 y 的新值,即 8

    y -= 2; // 等同于 y = y - 2
    cout << "y = " << y << endl; // 输出 y 的新值,即 6

    y *= 4; // 等同于 y = y * 4
    cout << "y = " << y << endl; // 输出 y 的新值,即 24

    y /= 6; // 等同于 y = y / 6
    cout << "y = " << y << endl; // 输出 y 的新值,即 4

    return 0;
}
```

二、交换赋值运算符

C++还提供了交换赋值运算符,用于交换两个变量的值。

1. 交换赋值运算符(=):将右侧变量的值赋给左侧变量,同时将左侧变量的值赋给右侧变量。

以下是一个使用交换赋值运算符的示例:

```cpp
#include <iostream>
using namespace std;

int main() {
    int a = 10;
    int b = 20;

    a = b; // 将b的值(20)赋给a,a现在是20
    b = a; // 将a的值(20)赋给b,b现在也是20

    cout << "a = " << a << ", b = " << b << endl; // 输出 a 和 b 的值,均为 20

    return 0;
}
```

三、位赋值运算符 

C++还提供了位赋值运算符,它们对变量的二进制位进行操作。

1. 按位与赋值运算符(&=):将左侧变量与右侧表达式进行按位与操作,并将结果赋值给左侧变量。

2. 按位或赋值运算符(|=):将左侧变量与右侧表达式进行按位或操作,并将结果赋值给左侧变量。

3. 按位异或赋值运算符(^=):将左侧变量与右侧表达式进行按位异或操作,并将结果赋值给左侧变量。

4. 按位左移赋值运算符(<<=):将左侧变量的所有位向左移动指定的位数,并将结果赋值给左侧变量。

5. 按位右移赋值运算符(>>=):将左侧变量的所有位向右移动指定的位数,并将结果赋值给左侧变量。

以下是一个使用位赋值运算符的示例:

```cpp
#include <iostream>
using namespace std;

int main() {
    unsigned int c = 60; // 二进制表示为 0011 1100
    unsigned int d = 13; // 二进制表示为 0000 1101

    c |= d; // 按位或操作,结果为 0011 1101
    cout << "c = " << c << endl; // 输出 c 的新值,即 61

    c &= ~d; // 按位与操作,结果为 0011 1000
    cout << "c = " << c << endl; // 输出 c 的新值,即 48

    c ^= d; // 按位异或操作,结果为 0011 0001
    cout << "c = " << c << endl; // 输出 c 的新值,即 49

    c <<= 2; // 按位左移两位,结果为 0110 0000
    cout << "c = " << c << endl; // 输出 c 的新值,即 192

    c >>= 3; // 按位右移三位,结果为 0000 1100
    cout << "c = " << c << endl; // 输出 c 的新值,即 24

    return 0;
}
```

四、总结

赋值运算符是C++编程中的基本工具,它们允许我们将值分配给变量。通过本文的学习,您应该已经了解了C++中各种赋值运算符的使用方法和规则。掌握这些运算符的使用将有助于您编写更有效、更可读的C++代码。在实际编程中,合理利用赋值运算符将简化代码,提高代码质量。

目录
相关文章
|
30天前
|
C++
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
32 0
|
3天前
|
C++
【C++基础】运算符详解
这篇文章详细解释了C++中运算符的用法,包括算术运算符、赋值运算符、比较运算符和逻辑运算符,以及它们在表达式中的作用和示例。
11 2
|
3天前
|
C++
【C++基础】程序流程结构详解
这篇文章详细介绍了C++中程序流程的三种基本结构:顺序结构、选择结构和循环结构,包括if语句、三目运算符、switch语句、while循环、do…while循环、for循环以及跳转语句break、continue和goto的使用和示例。
12 2
|
1月前
|
C++
c++学习笔记02 运算符
C++学习笔记,介绍了C++中的运算符,包括基本的加减乘除、求模、前后置递增递减、赋值运算符、比较运算符和逻辑运算符的使用及其注意事项。
33 6
|
30天前
|
PHP C++ Python
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
23 0
|
1月前
|
C++
c++学习笔记03 程序流程结构
C++学习笔记,主要介绍了程序流程结构,包括顺序结构、选择结构和循环结构。选择结构中详细解释了if语句、三目运算符和switch语句的用法和注意事项。循环结构部分则涵盖了while循环、do-while循环和for循环的语法和使用技巧。此外,还介绍了跳转语句,包括break、continue和goto语句的用途和用法。
28 0
|
2月前
|
编译器 C++
【C++】详解运算符重载,赋值运算符重载,++运算符重载
【C++】详解运算符重载,赋值运算符重载,++运算符重载
|
3月前
|
编译器 C++
【C++】类和对象③(类的默认成员函数:赋值运算符重载)
在C++中,运算符重载允许为用户定义的类型扩展运算符功能,但不能创建新运算符如`operator@`。重载的运算符必须至少有一个类类型参数,且不能改变内置类型运算符的含义。`.*::sizeof?`不可重载。赋值运算符`=`通常作为成员函数重载,确保封装性,如`Date`类的`operator==`。赋值运算符应返回引用并检查自我赋值。当未显式重载时,编译器提供默认实现,但这可能不足以处理资源管理。拷贝构造和赋值运算符在对象复制中有不同用途,需根据类需求定制实现。正确实现它们对避免数据错误和内存问题至关重要。接下来将探讨更多操作符重载和默认成员函数。