C语言的赋值运算符
赋值运算符就是把表达式或者值赋给变量,比如极易混淆的=为赋值,等于是==。
其实赋值运算符可以和很多前面说的算术运算符、逻辑运算符和按位运算符合并使用。
如下如下:
| 赋值运算符 | 含义 |
|---|---|
| = | 赋值,等于 |
| += | 加后赋值 |
| -= | 减后赋值 |
| *= | 乘后赋值 |
| /= | 除后赋值 |
| %= | 取模后赋值 |
| &= | 按位与后赋值 |
| |= | 按位或后赋值 |
| ^= | 按位异或后赋值 |
| <<= | 按位左移后赋值 |
| >>= | 按位右移后赋值 |
举个例子来show一下:
1 | /*advance/operator/operator2.c*/ |
相应地Makefile如下所示:
1 | #advance/operator/Makefile |
输入make,然后./operator2输出为:
1 | a is 107106770 |
可以看到结果就是对每一位进行的操作
那么问题来了,你知道为什么a刚开始的值是107106770吗,为什么每次都给a赋值吗?