运算符和表达式——位,自增自减,赋值,逗号,条件

目录

位运算符

自增自减

赋值(=)

复合赋值运算符:

逗号(,)

条件(?)


位运算符

  1. 按位与:按位运算,都为1时得1
  2. 按位或:按位运算,只要有一个为1,其结果就为1
  3. 按位异或:相异为真,相同为假
  4. 按位取反:一元运算符,每个二进制位逐一取反
  5. 左移:比如a<<n,其代表a按照二进制向左移动n位,最高的n位舍弃,最低的则需用0补齐
  6. 右移:与左移类似,只是运算符如果是一个有符号的整数则补齐符号位,无符号整数则最高补0

自增自减

  • ++i  --i  :在使用i之前,使i的值加1或减1
  • i++  i--  :在使用i之后,使i的值加1或减1

总结下来就是符号在前先加减,后运算;符号在后就先加减,后加减

要注意的是,它们的结合性是自右向左的

比如

int i=3,j;

j=++i

这个就是先对i进行加减,然后再把值赋给j,最后我们就可以得到j的值为4

j=i--时则是先赋值,在对i进行变换

自增自减只用于变量,是不能用于常量和表达式的

赋值(=)

结合性:自右向左

【变量】=【表达式】

表达式可以是任意的变量,没有要求,甚至可以是变量和另一个赋值表达式。但格式左边一定是变量,且二者数据类型应该相同,如果类型不一致时,系统会自动将表达式的值转换为被赋值变量的数据类型。

#include<stdio.h>
int main()
{
	int j;
	j=2.5;
	printf("j=%d",j);
}

那,根据赋值运算,运行的结果就是j=2,而非j=2.5

复合赋值运算符:

当赋值运算左侧表达式参与右侧表达式时,复合赋值运算符可以起到一个简写的作用

表达式1 op=表达式2——表达式1=表达式1 op 表达式2

a+=b-1 —— a=a+(b-1)

复合赋值运算符优先级等同于赋值运算符的优先级,结合性也同样是自右向左

逗号(,)

逗号运算符是将几个表达式隔开并以此计算

优先级最低

结合性为自左向右

在整个表达式中,其值为最后一个表达式的值

条件(?)

本质为程序控制

条件表达式用来判断一个程序表达式的结果,为真,执行某个表达式;为假,则执行另一个表达式

优先级低于逻辑表达式,高于赋值表达式

结合性:自右向左

int max,a=5,b=3

max=a>b?a:b;

在以上运算中,a>b为真,所以a为整个表达式的值,所以最后运行结果max=5

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值