*** 作符分类:
算术 *** 作符
移位 *** 作符
位 *** 作符
赋值 *** 作符
单目 *** 作符
关系 *** 作符
逻辑 *** 作符
条件 *** 作符
逗号 *** 作符
下标引用、函数调用和结构成员
算数 *** 作符
+ - * / %
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
如果某个 *** 作数的类型在上面这个列表中排名较低,那么首先要转换为另外一个 *** 作数的类型后执行运算
两个相邻的 *** 作符先执行哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)