逻辑运算符与部分位运算符

举个例子吧
#include<stdio.h>
#include<stdlib.h>
int main()
{
int x, y, z;
y = z = (y = z = 2, x = 1);
//逗号表达式,从左到右顺序执行,最好一个作为返回值,所以x=y=z=1
printf(“x=%d,y=%d,z=%d\n”, x, y, z);
–x&&++y || --z;
/先进行 --x得 x=0为假,由于是逻辑与,所以++y跳过,则 0||–z,由于逻
辑或,运算继续,得 x=0,y=1,z=0
/
printf(“x=%d,y=%d,z=%d\n”, x, y, z);
++x&&–y | z–;
/按位或优先级比逻辑与高,所以实际为++x&&(–y|z–),左边 x=1为真,
但是按位或不影响想 y,z的值,所以 y=0,z=-1
/
printf(“x=%d,y=%d,z=%d\n”, x, y, z);
x-- || --y&&z++;
/同样逻辑与优先级比逻辑或高,所以为 x–||(–y&&z++),但是运算还是从左
到右,x=1为真(此处应是用 x来执行,最后执行 x–),所以右边不执行,
y与 z的值不变,y=0,z=-1
/
printf(“x=%d,y=%d,z=%d\n”, x, y, z);
++x&–y || ++z;
/按位与优先级比逻辑或高,执行 x=1,y=-1,进行按位与运算,结果为 1,
为真,所以 z不执行,依旧为 z=-1
/
printf(“x=%d,y=%d,z=%d\n”, x, y, z);
system(“pause”);
return 0;
}
在这里插入图片描述
1.逻辑运算符中优先级!>&&>||
2.位运算符优先级>逻辑运算符
3.按位与&(位运算时,相同为1,不同为0)
按位或|(位运算时,有1为1,全0为0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值