C语言-操作符和表达式

算数操作符+ :加法操作符- :减法操作符* :乘法操作符/ :除法操作符% :取余操作符注意:除 % 之外,其余4个均可以作用于整数和浮点数对于 / 操作符,如果两个操作数均为整数,则执行整数除法(结果取整数部分,eg:5/2=2);若存在 浮点数,则进行浮点数除法% 的两个操作数必须为正数移位操作符>>:右移操作符<<:左移操作...
摘要由CSDN通过智能技术生成

算数操作符

+ :加法操作符
- :减法操作符
* :乘法操作符
/ :除法操作符
% :取余操作符

注意:

  • % 之外,其余4个均可以作用于整数和浮点数
  • 对于 / 操作符,如果两个操作数均为整数,则执行整数除法(结果取整数部分,eg:5/2=2);若存在 浮点数,则进行浮点数除法
  • % 的两个操作数必须为正数

移位操作符

>>:右移操作符
<<:左移操作符

注意

  • 右移操作符(相当于除法)
    1、逻辑右移:左边补0,右边丢弃
    2、算数右移:左边用原符号位填充,右边丢弃
原值:0000 1011     11
>>1:0000 0101       5     11/2^1
>>2:0000 0010       2     11/2^2
  • 左移操作符(相当于乘法)
    1、左边丢弃,右边补0
    2、逻辑左移和算术左移规则相同
原值:0000 1011     11
<<1:0001 0110      22    11*2^1
<<2:0010 1100      44    11*2^2

注意:移位操作符不能移动负数位,否则会出现警告

位操作符

&:按位与(有0则0,全1才1)
eg:(0000 0101)&(0000 0110) --> 0000 0100

|:按位或(有1则1,全0才0)
eg:(0000 0101)|(0000 0110) --> 0000 0111

^:按位异或(相同为0,不同为1)
eg:(0000 0101)^(0000 0110) --> 0000 0011

复合赋值符

+=、-+、*=、/=、%=、>>=、<<=、&=、^=、|
(都可以写成复合的效果)
eg:i+=1和i=i+1是等效的

单目赋值符

:逻辑反操作
-:负值
+:正值
&:取地址
sizeof:操作数的类型长度(以字节为单位)
~:对一个数的二进制按位取反
- -:前置/后置- -
++:前置/后置++
*:间接访问(解引用)
(类型):强制类型转换

注意

  • sizeof在编译期间确定表达式的字节大小,不影响后面的值
  • 前置++和前置- -:先进行+或-的操作,再使用
  • 后置++和后置- -:先使用,再进行+或-的操作

关系操作符

>、>=、<、<=、!=(不等于)、==(等于)
注意:“=”用于赋值,“==”用于判断相等

逻辑操作符

&&:逻辑与
||:逻辑或

短路与

int i=0,a=1,b=2,c=3,d=4;
i=a++&&++b&&d++;
输出abcd:1234
//短路与(为真执行,为假不再继续向后执行)

短路或

int i=0,a=1,b=2,c=3,d=4;
i=a++||++b||d++;
输出abcd:1334
//短路与(为假执行,为真不再继续向后执行)

条件操作符(三目操作符)

表达式1 A B
如果表达式1为真,返回A,否则返回B
(常用于求两个数中的最大值)

逗号表达式

A,B,C,D,……
注意:从左向右依次执行,整个表达式的结果是最后一个表达式的结果
eg:

int a=1;
int b=2;
int c=(a>b,a=b+10,a,b=a+1);
输出c的值为13

算术转换

long double
double
float
unsigned long int
long int
unsigned int
int
  • 如果两个操作数中有一个操作数的类型在上面的列表中排名较低,首先要转换成另外一个操作数的类型,然后再进行运算。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值