赋值运算符
普通的赋值运算符
基础赋值 =
算数赋值运算符(由基础赋值和算数运算符缝合而来)
加法赋值 +=
减法赋值 -=
乘法赋值 *=
除法赋值 /=
取模赋值 %=
位赋值运算符(由基础赋值和位运算符缝合而来,这部分较少会使用)
按位与赋值 &=
按位或赋值 |=
按位异或赋值 ^=
按位左移赋值 <<=
按位右移赋值 >>=
1,以上所有的赋值运算符,都可以用于重载。
2,所有的赋值运算符,都应该返回其自身的引用。
3,赋值运算符的结合性是从右向左的。
赋值表达式
含有赋值运算符的表达式,就是赋值表达式
一般来说,在c++中没有赋值语句,只有赋值表达式。这句话的意思是,在c++中赋值不是作为一个单独的语句存在的。赋值表达式本身也可以参与运算,或者说可以被包括在更复杂的表达式之中。
#include <iostream>
using namespace std;
int main()
{
int a = 520;
int b, c;
// 此时,b和c都等于a,由于从右往左的结合性。
// a的值先赋给了c,此时,c=a的值为a的值,这个值被赋给了b。
// 因此,最终b和c都等于a(注意,b不是由a赋值的,是由c=a赋值的)
b = c = a;
cout << "b: " << b << endl;
cout << "c: " << c << endl;
// 先计算b+=c的值,然后将b+=c的值和a的和赋值给了d
int d = a + (b += c);
cout << "d: " << d << endl;
cout << "b: " << b << endl;
// a+b+=c这样是不可以的!
// 因为,算数运算符的优先级要高于赋值运算符
// 此时,先计算a+b的结果,这个结果不可以被赋值
// int e = a + b += c;
}
点击查看全部c++教程