C语言提供了以下赋值运算符:
简单赋值运算符 (=):
这是最基本的赋值运算符,用于将右侧表达式的值赋给左侧的变量。例如:
int a = 5;
a = 10; // a现在的值为10
复合赋值运算符:
复合赋值运算符结合了基本的算术或位操作与赋值操作。以下是一些常见的复合赋值运算符:
int a = 5;
a += 3; // 等效于 a = a + 3; a现在的值为8
int a = 5;
a -= 3; // 等效于 a = a - 3; a现在的值为2
int a = 5;
a *= 3; // 等效于 a = a * 3; a现在的值为15
int a = 15;
a /= 3; // 等效于 a = a / 3; a现在的值为5
int a = 15;
a %= 3; // 等效于 a = a % 3; a现在的值为0
int a = 5;
a <<= 1; // 等效于 a = a << 1; a现在的值为10
int a = 10;
a >>= 1; // 等效于 a = a >> 1; a现在的值为5
int a = 10; // 二进制: 1010
a &= 5; // 二进制: 0101
// 等效于 a = a & 5;
// 结果: a现在的值为0,二进制: 0000
int a = 10; // 二进制: 1010
a |= 5; // 二进制: 0101
// 等效于 a = a | 5;
// 结果: a现在的值为15,二进制: 1111
int a = 10; // 二进制: 1010
a ^= 5; // 二进制: 0101
// 等效于 a = a ^ 5;
// 结果: a现在的值为5,二进制: 0101
所有这些赋值运算符都会返回一个值,该值是赋值操作后的左操作数的值。在C语言中,赋值运算符具有右结合性,这意味着如果连续进行多个赋值操作,它们会从右向左进行计算。例如,a = b = c
等同于 a = (b = c)
。