操作符详解

操作符的一种分类:

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

!        逻辑反操作符

-        负值

+        正值

&        取地址

sizeof        计算数据类型的长度

 sizeof括号中的表达式是不参与运算的

#include<stdio.h>
int main()
{
	short s = 5;
	int a = 10;
	printf("%d\n", sizeof(s = a + 2));
	printf("%d\n", s);
	return 0;
}

~        对一个数的二进制按位取反(包括符号位)

 

--      :

(1)前置--

int main()
{
	int a = 10;
	int b = --a;
	printf("%d\n", a);//9
	printf("%d\n", b);//9
	return 0;
}

(2)后置--

int main()
{
	int a = 10;
	int b = a--;
	printf("%d\n", a);//9
	printf("%d\n", b);//10
	return 0;
}

++        

(1)前置++

int main()
{
	int a = 10;
	int b = ++a;
	printf("%d\n", a);//11
	printf("%d\n", b);//11
	return 0;
}

(2)后置++

int main()
{
	int a = 10;
	int b = a++;
	printf("%d\n", a);//11
	printf("%d\n", b);//10
	return 0;
}

      间接访问,解引用操作符

(类型)        强制类型转换

2.双目操作符(有两个操作数)

&        按位与

|        按位或

^        按位异或

+        加

-        减

*        乘

/        除,取整

%        模,取余

&&        且

||        或

>=        大于等于

<=        小于等于

!=        不等于

3.三目操作符(有三个操作数)

表达式1?表达式2 :表达式3

如果1成立,执行2,否则执行3。

 

另一种分类:

1.算数运算符:

(1)+  运算符

将两个数字加起来

(2)-  运算符

将两个数字相减

(3)*  运算符

将两个数字相乘

(4)%  取模运算符

将两个数字相除然后去余

(5)/  运算符

将两个数字相除取整

(6)++  运算符

x++是在有这个的这个算式中先使用x,再自增1及x=x+1。++x是先自己加1,再使用。

(7)--

同++。

 2.位运算符:

(1)>>        右移运算符(必须是整数)

使整数的二进制位向右移动一位

右移分为两种,

第一种是算术右移,右边丢弃,左边用原该值的符号位补充

第二种是逻辑右移,右边丢弃,左边补0

而我们一般使用算数右移。

(2)<<        左移操作符(整数)

使二进制位向左移动一位

左边丢弃,右边补0。

(3) &        按位与

只有相同的才为1,也就是两个对于二进制位都是1才为1

(4) |        按位或

对应二进制位只要有一个1,就为1

 

 (5) ^        按位异或

相同为0,相异为1

这里说一下按位异或的一种用法:

可以用来交换a和b的值:

 结果如图:

 接下来是一个小练习:(附带答案)

  3.   运算符

 4. []        下标操作符

 5. ()        函数调用操作符

有参数的情况下,操作数有三个

无参的情况下,有两个

 6.结构成员访问的操作符

分为两个

一个是  .  

一个是  ->

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值