操作符

操作符详解

1.算术操作符:+ – * / %
笔记:
(1)% 操作符的两个操作数必须为整数,返回的是整除之后的余数
(2)除了 % 操作符之外,其余均可以作用于整数和浮点数
(3)对于 / 操作符如果两个操作数都为整数,执行整数除法;而只要有浮点数执行的就是浮点数除法,返回的是整除之后的商
2.移位操作符:
(1)>> 右移操作符(类似于/2)
(2)<< 左移操作符(类似于*2)
笔记:
(1)任何整数在计算机中以补码的形式存储,所以移位时操作数为补码
(2)正数的原码,反码,补码相同
(3)原码最高位为1表示负数;最高位为0表示正数
(4)原码转换为反码:最高位不变,其他位按位取反
(5)反码转换为补码:反码的二进制+1
(6)右移分为算术右移和逻辑右移(由编辑器选择右移方式)
算术右移:右边丢弃,最高位补符号位(vs)
逻辑右移:右边丢弃,最高位补0
(7)左移方式:左边丢弃,末尾补0
注意:对于移位运算符,不要移动负数位,这个是标准未定义的
实例:

	int b = -1;
	//原码:100000000000000000000001
	//反码:111111111111111111111110
	//补码:111111111111111111111111
	int a = 10;
	//原码:000000000000000000001010
	//反码:000000000000000000001010
	//补码:000000000000000000001010

3.位操作符:
(1) & 按位与:同1为1,否则为0
(2) | 按位或:有1为1
(3) ^ 按位异或:相异为1,否则为0
笔记:他们的操作数必须是整数。
4.赋值操作符:=
5.复合赋值符:+=,-= ,*=,/=,%=,>>=,<<=,&=,|=,^=

	a = a + 1;
	a += 1;

6.单目操作符:
(1).! 逻辑反操作
(2). - 负值
(3). + 正值
(4). & 取地址
(5).sizeof() 操作数的类型长度(以字节为单位)
(6). ~ 对一个数的二进制按位取反
(7).- - 自减
(8).++ 自增
(9). * 间接访问操作符(解引用操作)
(10).(类型) 强制类型转换
实例:

int a = (int)3.14;

7.关系操作符:
(1). > 大于
(2). < 小于
(3). >= 大于等于
(4). <= 小于等于
(5). != 不等于
(6). == 判断相等
8.逻辑操作符:只判断真假,不关注二进制位
(1). && 逻辑与(左边为真才计算,为假停止计算)
实例:

#include <stdio.h>
int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ && ++b && d++;//a=0为假,停止计算
	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
	return 0;
}//答案为:1 2 3 4

(2). || 逻辑或(左边为假才计算,为真停止计算)
实例:

#include <stdio.h>
int main()
{
	int i = 0, a = 1, b = 2, c = 3, d = 4;
	i = a++||++b||d++;//a为真,则停止计算
	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
	return 0;
}//答案为:2 2 3 4

9.条件操作符:exp1 ? exp2(为真) : exp3(为假)
10.逗号表达式:exp1, exp2, exp3, …expN
笔记:从左向右依次计算。整个表达式的结果是最后一个表达式的结果。
实例:

int main()
{
	int a = 1;
	int b = 2;
	int c = (a > b, a = b + 10, a, b = a + 1);//从左向右依次执行
	printf("%d\n", c);
	return 0;
}//答案为13

11.下标引用、函数调用和结构成员
(1).[ ] 下标引用操作符
(2).( ) 函数调用操作符:接受一个或者多个操作数,第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值