操作符略解
C语言中操作符分为好几种,下面我们分门别类一一列举:
算术操作符
+ - * / %
移位操作符(移动的是整形数字32个bit位的二进制位置)
>> <<
位操作符
& (按位与) ^(按位异或) |(按位或)
赋值操作符
= += -= *= /= &= ^= |= >>= <<=
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
逻辑操作符
&& 逻辑与
|| 逻辑或
条件操作符(三目操作符(有三个操作数))
exp1 ? exp2 : exp3
逗号表达式
exp1, exp2,exp3,........expN
下标引用、函数调用和结构成员
[] () . ->
#define 定义常量和宏
//define定义标识符常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
sum = 10*ADD(2, 3);
printf("sum = %d\n", sum);
return 0;
}
这里需要特别注意 #define 定义宏时候 括号的必要性 括号能强调优先顺序。
eg. #define ADD(X,Y) ((X)+(Y))