C语言操作符

C语言操作符有以下分类:

算数操作符   移位操作符   位操作符   赋值操作符   单目操作符   关系操作符   逻辑操作符   条件操作符   逗号操作符   下标引用 、函数调用和结构成员

一、算数操作符

加(+)  减(-)  乘(*)  除(/)  求模(%)

1)%操作符只能用于两个整数之间的运算,其他的操作符可以作用于整数和浮点数。

2)对于/操作符,当两个操作数都是整数时执行整数除法。只要有一个操作数是浮点数就是浮点数除法。

3)%操作符参与运算的两个整数返回的是整除之后的余数,/操作符参与运算的两个整数返回的是整除之后的商。

二、移位操作符

左移操作符(<<):左边抛弃,右边补0

右移操作符(>>):1)逻辑移位--左边用0填充,右边丢弃

                               2)算术移位:左边用原该值的符号位填充,右边丢弃

三、位操作符

按位与(&)  按位或(|)  按位异或(^)

1)位操作符他们的操作数必须都是整数。

2)参与运算的操作数,是将他们的二进制(比特位)进行逐位运算。

3)&操作符只有当两个比特位都是1时与的结果才为1,以外均为0。

4)| 操作符只有当两个比特位都是0时或的结果才为0,以外均为1。

5)^操作符参与运算的是两个相同的操作数结果就会清零,任一个数与0按位异或得到的二进制序列不变,与1按位异或得到的二进制序列每位均取反。

四、赋值操作符

只有赋值操作符(=)可以让你改变一个你之前不满意的值。任何两个操作数参与运算时只要不经过赋值运算,这两个操作数其自身的值是不会发生变化的!

注意:赋值运算和初始化是两个不同的概念!初始化时(int i=0;),系统会为这个变量(i)开辟空间同时默认这是空间的值(0)。而赋值运算时(i=1;),是将这个空间的值改变(将1改为0)。

复合赋值符:+=   -=   *=   /=   %=   >>=   <<=   &=   |=   ^=  

五、单目操作符

逻辑反(!)  负值(-)  正值(+)  取地址(+)  求操作数的类型长度(sizeof)  对一个数的二进制数按位取反(~)  自增运算(++)  自减运算(--)  间接访问操作符、解引用操作符(*)  强制类型转换((类型))

1)以上操作符参与运算的只需要一个操作数即可。

2)自增操作符分为前置和后置,前置是先将值进行+1操作,然后再去用这个数。后置是先将数拿出来去使用,使用完了之后再进行+1操作。

3)强制类型转换仅仅改变了空间的类型,并没有改变这个数据,和转化是不同的概念。

4)切记sizeof是操作符,并不是一个函数。

六、关系操作符

大于(>)  大于等于(>=)  小于(<)  小于等于(<=)  相等(==)  不相等(!=)

1)对浮点数来说要特别注意,并没有严格意义上的相等。它是用精度范围来判断两个数是相等的。

2)执行相等操作(==)时,可能会不小心写成赋值操作(=)。例如:if(x=5)//处理事务

因此建议做相等比较时,将常数写在左边(5==x)。例如:if(5==x)//处理事务

这样不小心输错成if(5=x),系统就能在编译时报错

七、逻辑操作符

逻辑与(&&)  逻辑或(||)

1)&&操作符前后两个操作数均为真结果才为真。

2)|| 操作符前后两个操作数均为假结果才为假。

3)逻辑与和按位与是不同的概念,前者的结果是布尔型,不是1(真)就是0(假),而后者是将二进制进行逐位运算的,结果是个数。

八、条件操作符

exp1 ? exp2 : exp3 ;

三目运算符:当exp1为真时结果为exp2,假时结果为exp3

类似于:if(exp1) {exp2} else {exp3}

九、逗号表达式

exp1,exp2,exp3,……expN

1)逗号表达式,就是用逗号隔开多个表达式。

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

十、下标引用、函数调用和结构成员

1)[ ]

操作数:一个数组名+一个索引值

2)( )

函数调用操作符

一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

3)访问一个结构体的成员

  .  结构体 . 成员名(通过结构体直接访问内部元素)

  ->  结构体指针 -> 成员名(通过指针访问结构体内部元素)

注意:结构体、数字、指针都属于数据类型,只不过是自定义数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值