操作符分类:
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号操作符
下标引用、函数调用和结构成员
算数操作符
+ - * / %
1.对于除法如果是小数,会自动省略掉小数后面的位
2.对于%两边必须是整数
<< >>
<< 左移操作符:
左边丢弃,右边补0
& //按位与
| //按位或
^ //按位异货
注:他们的操作符必须是整数
&对应的二进制位只要有0,该位就是0
|对应的二进制位只要有1,该位就是1
^对应的二进制位只要不同就为1,相同为0
#define _CRT_SECURE_NO_WARNINGS 1 #includeint main() { int x; int y; printf("请输入两个数字:"); scanf("%d %d", &x, &y); //先使得第一个x作为密码 x = x ^ y; //通过y与密码异或解出x y = x ^ y; //再通过密码与解出来的x进行异或解出y x = x ^ y; printf("交换后为x = %d,y = %d", x, y); return 0; }
赋值操作符
可以对变量进行重新赋值
可以进行连续赋值
变量1=变量2=……=变量n=值;
关于运算符都能与赋值符号组合成为复合赋值符
+= -= *= /= %= >>= <<= &= |= ^=
单目操作符
单目操作符是只有一个操作数
当++或--在变量后边的时候,先赋值再++或者--
int * pa = &a //pa是用来存放地址的
*pa = 20; //解引用操作符 - 间接访问操作符
强制类型转换
(类型1)类型2
三目操作符
变量 =(判断语句 ? 语句1 :语句2);
如果判断语句为真执行语句1,为假执行语句2
逗号表达式 要从左向右依次计算,但是整个表达式的结果是最后一个表达式的结果
struct定义一个结构体类型
struct 变量名1{
语句块;
}
调用:
struct 变量名1 变量名2 = {值}
结构体变量名.成员名
算术转换
如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类型,否则操作就无法进行。下面的层次体系称为寻常算术转换
long double
double
float
unsigned long int
long int
unsigned int
int
如果某个操作数的类型在上面这个列表中排名较低,那么首先要转换为另外一个操作数的类型后执行运算
两个相邻的操作符先执行哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。



