C语言单目操作符

单目操作符

C语言单目操作符有

-  + sizeof ~  -- ++

今天就只说后面四种较为复杂的:

sizeof操作符

sizeof是用来计算变量所占空间的大小的
如下代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 10;

	int arr[] = {1,2,3,4,5,6};

	printf("%d\n",sizeof(arr));
	//一个整型占用4字节,6个整型就是24字节
	//故arr的长度为24
	return 0;
}
~操作符

~表示按(2进制)位取反
如有二进制数为:1010
那么按位取反就是:1变成0,0变成1,故1010等于0101
示例代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = 0;

	int b = ~a;
	//把0的二进制按位取反,0的二进制还是0
	//整型占用4个字节,8个比特位,也就是32个二进制数
	//00000000000000000000000000000000
	//首先按位取反就是把0变成1,把1变成0,这里全是0,按位取反,就是32个1
	//11111111111111111111111111111111
	
	//在二进制中最高位表示符号位,如果最高位是0,那么就是正数,如果最高位是1那么就是负数
	//这里为1那么就是负数
	//负数在二进制中存储的是二进制的补码,而打印输出的要原码
	//原码:补码->反码-1->原码(符号位不变,其余按位取反)

	//也就是说补码11111111111111111111111111111111
	//变成反码为11111111111111111111111111111110
	//反码得到原码为100000000000000000000000000000001
	//在二进制中最高位表示符号位,如果最高位是0,那么就是正数,如果最高位是1那么就是负数
	printf("%d\n",b);
	//故打印输出-1
	return 0;
}
++操作符
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 1;
	int b = a++;
	//这里++后置,表示先把a的值赋给b,a再进行++
	//也就是说b=10,a=11
	printf("%d\n", b);
	return 0;
}
逻辑操作符

&&逻辑操作符与||逻辑操作符
&&表示两个条件为真,那么条件成立
||只要有一个结果为真那么就为真
代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;

	int c = a && b;
	//在c语言中,假为0,非0为真
	//a=10,b=20,两个都为真,所以输出1
	printf("%d\n",c);
	return 0;
}

||逻辑操作符

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 1;
	int b = 0;
	//||表示只要有一个为真那么就是真
	int c = a || b;
	//所以输出打印1
	printf("%d\n",c);
	return 0;
}
条件操作符
exp1?exp2:exp3

这里表示:如果表达式1结果为真,那么表达式exp2要执行,表达式2是整个表达式的结果
如果表达式为假,表达式3要被执行,表达式3是整个表达式的结果
代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int max = 0;
	
	max = (a > b ? a : b);
	//首先执行表达式1,a>b,很显然10<20,条件为假
	//那么就执行表达式3,表达式3的结果为整个表达式的结果位20
	printf("%d\n",max);
	return 0;
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值