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