C语言操作符基础

操作符的分类:

算术操作符
移位操作符
位操作符
赋值操作符
逻辑操作符
单目操作符
关系操作符
条件操作符
逗号表达式
下标引用

函数调用和结构成员

算术操作符

 +-*/%        取余数

移位操作符

<<        左移
    
>>        右移

左移操作符 移位规则:
左边抛弃,右边补0。

右移操作符 移位规则:
右移运算分两种:
1.算术右移:左边用该值的符号位填充。
2.逻辑右移:左边用0补充,右边丢弃。

int a=3;
int b=5;
a>>1;
011     010
a=2;
b<<1;
101     1010
b=10;

位操作符

&      按位与

^      按位异或 

|      按位或

注:他们的操作数必须是整数。(位操作符的应用见我的第二篇博客)

赋值操作符
复合赋值操作符

=       赋值
           
+=       a=a+1可以写为a+=1     

-=       a=a-1可以写为a-=1  

*=       a=a*1可以写为a*=1  

/=       a=a/1可以写为a/=1  

^=       a=a^1可以写为a^=1  

&=       a=a&1可以写为a&=1  

%=       a=a%1可以写为a%=1

>>=      a=a>>1可以写为a>>1  

<<=      a=a<<1可以写为a<<1  

单目操作符:

!          逻辑取反操作

+-~          按位取反

(类型)     强制类型转换   (应用见指针进阶博客)

sizeof     操作数类型长度

*          间接访问(解引用操作符)     (应用见指针博客)

&          取地址

++         前置++,后置++     前置++,++,后使用
                            后置++,先使用,++
--         前置--,后置--     
                            前置--,--,后使用
                            后置--,先使用,--

关系操作符:

==         用于测试(判断)等于

!=         用于测试(判断)不等于

<=         小于等于

>=         大于等于

<          大于

>          小于

逻辑操作符:

&&      逻辑与

||      逻辑或  

条件表达式:

exp1?exp2:exp3
exp1,exp2...expN

逗号表达式:从左向右依次执行,整个表达式的结果是最后一个表达式的结果

下标引用操作符:

[]
arr[10]

函数调用操作符:

()
Add(10,20);

访问结构体的成员

.              

->

整型提升
(隐式发生):两个char类型的变量相加,需要提升成一个普通整型的字节长度。

char a = 3;
char b = 127;
00000011 a
01111111 b
00000000000000000000000000000011 补充符号位
00000000000000000000000001111111 补充符号位
00000000000000000000000010000010 a+b
10000010 c
11111111111111111111111110000010 补充符号位
11111111111111111111111100000001 c反码
10000000000000000000000011111110 c原码
char c = a + b;
printf("%d\n",c);

输出结果为-126,而不是130。
算术转换(隐式转换):如果一个int类型的变量和一个double类型的变量进行计算,则 先将int 类型转换为double类型(向上转换)。

操作符的属性:
1.操作符的优先级
2.操作府的结合性
3.是否控制求值顺序

结合性:

L-R(从左向右)R-L(从右向左)
( )++
[ ]- -
.+=
->-=
++*=
- -/=
+%=
->>=
*<<=
/&
%*
>>sizeof
<<()
>&=
<^=
>=|=
<==
==/
!=/
&/
&&/
^/
| |/
,/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值