逻辑运算符、赋值运算符与求字节运算符

1.逻辑运算符与逻辑表达式

逻辑运算符!、&&、||依次为逻辑非、逻辑与和逻辑或。
逻辑非的优先级高于算术运算符,逻辑与和逻辑或的优先级低于关系运算符
逻辑表达式的值只有真和假,对应1和0
【例】

#include<stdio.h>
#include<stdilib.h>

int main(){
	int i=0,j=1;
	while(scanf("%d",&i))
	{
		if(i%4==0&&i%100!==0||i%400==0)
		{
			printf("i is leap year\n");
			
		}else{
			printf("i is not leap year\n");
			}
	}
	i=!!j;
	printf("i的值=%d\n",i);
	return 0;

}

针对逻辑非 ,先给变量j赋值为10,因为j的值非0;所以 !j 的值为0;
然后,由于逻辑非是单目运算符,结合顺序为从右至左,得到 !!j 的值为1;
所以说,对0取非==1;对非零数取非==0;

下面我们看一个短路运算的例子

#include<stdio.h>
int main(){
		int i=0;
		i&&printf("you can't see me \n");
		return 0;
		
		int i=1;
		i||printf("you can't see me \n");
		return 0;

}

逻辑与(&&)短路运算是,当前面一个表达式1为假的时候,后面的表达式2不执行了。
逻辑或(| |)短路运算是,当前面一个表达式1为真的时候,后面的表达式2不执行了。

2.赋值运算符

左值(L-value)

a=b+25;

这里a是左值,标识了可以存储结果值的地点;
b+25是一个右值,因为它指定了一个值;
!!不能互换
a可以换到右边
但是b+25不能是左值(因为它无法标识一个特定位置【内存空间】)所以,是非法的。

#include<stdio.h>

int main( ){
	int a=1,b=2;
	b+25=a;
	return 0;

}

在这里插入图片描述
在这里插入图片描述

3.求字节运算符 sizeof

用来求常量或变量所占用的空间大小:

#include <stdio.h>

int main()
{
int i=0;
printf("i size is %d\n",sizeof(i));
return 0;
}

结果为i size is 4 可以知道整型int占用空间大小是4个字节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rock Hang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值