初识操作符

1.算术操作符:+  -  /  %

2.移位操作符:>>右移     <<左移

3.位操作符:&   ^   |

4.赋值操作符: =  +=  -=  *=  /=  &=  ^=  |=  >>=  <<=

5.单目操作符(只有一个操作数):

(1)sizeof 求操作数的类型长度(以字节为单位)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int arr[10] = { 0 };
	printf("%d\n", sizeof(arr)); //计算数组总大小,一个四个字节,一共十个,40个字节。
	printf("%d\n", sizeof(arr[0]));
	int sz = sizeof(arr) / sizeof(arr[0]); //经常使用这种方法求数组元素个数。
	printf("%d\n", sz);
	return 0;
}

输出结果:

 

(2) ~按位取反:对一个数的二进制按位取反。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int a = 0;
	printf("%d\n", ~a);
	return 0;
}

输出结果:

解析:

①0是int型,占4个字节,1个字节占8个比特位,所以0占32bits。

二进制为:00000000000000000000000000000000(32位)

           ~a:11111111111111111111111111111111(32位)

②补充知识:一个整数的二进制表示有3种:原码、反码、补码。整数在内存中存储的是补码

 -1的原码: 10000000000000000000000000000001(32位)//此处的1是符号位,代表负

 -1的反码: 11111111111111111111111111111110(32位)//原码变反码符号位不变,其他位取反。

 -1的补码: 11111111111111111111111111111111(32位)//反码+1得到补码。

// ~a在内存里是补码,反推回原码得到-1,所以输出结果为-1。

正整数的原码、反码、补码相同。

(3) (类型)  强制类型转换。

6.条件操作符(三目操作数): exp1 ? exp2 : exp3

①exp1成立,执行exp2;②exp1不成立,执行exp3

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int a = 0;
	int b = 1;
	int max = 0;
	max = a > b ? a : b; //输出啊a,b中的较大值
	printf("%d\n", max);
	return 0;
}

7.关系操作符:>  >=  <  <=  !=  ==

8.逻辑操作符:&&  ||

9.逗号表达式:exp1,exp2,exp3,...expN

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int a = 0;
	int b = 3;
	int c = 5;
	int d = (a = b+2,c = a-4,b = c+2); //输出啊a,b中的较大值
	printf("%d\n", d);
	return 0;
}

输出结果:3

解析:逗号表达式从左向右依次计算,结果是最后一个表达式的结果。

10.其他

下标引用[ ]、函数调用( )、结构成员 .  ->

eg.  arr[5]:数组中的第5个。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值