详解C++语言中的加法运算符与赋值运算符的用法

2020-01-06 14:27:18于海丽

 

运算符关键字
三个复合赋值运算符具有文本等效项。它们是:

运算符 等效
&= and_eq
|= or_eq
^= xor_eq

在您的程序中有两种访问这些运算符关键字的方法:包括标头文件 iso646.h 或使用 /Za(禁用语言扩展)编译器选项进行编译。

 


// expre_Assignment_Operators.cpp
// compile with: /EHsc
// Demonstrate assignment operators
#include <iostream>
using namespace std;
int main() {
  int a = 3, b = 6, c = 10, d = 0xAAAA, e = 0x5555;

  a += b;   // a is 9
  b %= a;   // b is 6
  c >>= 1;   // c is 5
  d |= e;   // Bitwise--d is 0xFFFF

  cout << "a = 3, b = 6, c = 10, d = 0xAAAA, e = 0x5555" << endl
     << "a += b yields " << a << endl
     << "b %= a yields " << b << endl
     << "c >>= 1 yields " << c << endl
     << "d |= e yields " << hex << d << endl;
}

简单赋值
简单赋值运算符 (=) 将使第二个操作数的值存储在第一个操作数指定的对象中。如果两个对象都是算术类型,则在存储值之前,正确的操作数将转换为左侧的类型。
常量和可变类型的对象可赋给可变类型的左值或者既不是常量类型也不是可变类型的左值。
对类类型(结构、联合和类类型)的对象的赋值由名为 operator= 的函数执行。此运算符函数值的默认行为是执行按位复制;但是,可使用重载运算符修改此行为。(有关详细信息,请参阅重载运算符。)