c语言操作符

c语言的操作符大概分为以下几类:

1.算数操作符

2.移位操作符

3.位操作符

4.赋值操作符

5.单目操作符

6.关系操作符

7.逻辑操作符

8.条件操作符

9.逗号表达式

一、首先 我们先来看看算术操作符:

算数操作符有:+   -   *(乘)   /(除)    &(取余运算)

注意:

1.除了%操作符以外,其他的操作符都可以作用于整数和浮点数。

2.对于/操作符,如果两个操作符都为整数,执行整数除法。如果有浮点数就执行的是浮点数除法。

3.%操作符的两个操作数必须为整数。返回的是整除后的余数(取余数运算)。

二、我们再来看看移位操作符。

移位操作符分为:1.左移操作符      2.右移操作符

左移操作符的移位规则:左边抛弃、右边取0

右移操作符的移位规则:首先右移运算分为两种:1.逻辑移位(左边用0填充,右边丢弃) 2.算数移位(左边用原该值的符号位填充,右边丢弃)。

注意:移位操作在num没有被赋值的情况下,自身的值是不会改变的。

三、位操作符。

位操作符有:&  //按位与(全"1"为"1")  |  //按位或(有"1"为"1")  ^ //按位异或(相同为"0" 不同为"1")

另外,我们要注意一个细节:两个相同的数进行异或的时候就会清0(就是等于0);

                                          任何数和0异或就是它本身

练习题:不创建临时变量(即第三个变量)来实现两个数的交换

代码:     

#include<stdio.h>

int main()

{

      int a=10;

      int b=20;

      a=a^b;

      b=a^b;

      a=a^b;

      printf("a=%d b=%d\n",a,b);

      return 0;

}

这样我们通过按位异或的方式就能实现在不创建第三变量的条件下,交换两个数的内容。

四、赋值操作符

在赋值操作符里,我们只需要搞清楚两个东西。什么是初始化,什么是赋值。

初始化:是指在定义的时候赋初值。例如:int a=10;

赋   值:是在定义后赋值。例如:a=10;

二者是不一样的。

另外,我们还有一些复合赋值符:

+=    -=   *=   /=   %=  >>=   <<=  &=  |=   = 

具体怎么用呢,我们举个例子:

int x=10;

x=x+10; 

这里我们就可以写成x+=10

五、单目操作符

单目操作符有哪些呢?我们来看看:    !(逻辑反操作) -(负值) +(正值) &(取地址) sizeof(操作数的类型长度(以字节为单位)) ~(对一个数的二进制按位取反) --(前置、后置--) ++(前置、后置++) *(间接访问操作符) (类型)(强制转换类型)

六、关系操作符

我们常用的关系操作符有: >、<=、<、<=、!=(用于测试“不相等”) ==(用于测试“相等”)

这些关系运算都比较简单,但我们要注意一点:

比如:

x=get_value();

if(x=5) 这里我们要把if(x=5)写成if(5==x)

有时候我们一不注意就会把等于写成了赋值,所以用上边的写法就会降低我们的出错率。

七、逻辑操作符

逻辑操作符有 &&(逻辑与)和||(逻辑或)

我们在这里要区分逻辑与和按位与 逻辑或和按位或 举个例子:

1& 2--------->0    1&&2---------->1

1|2------------>3   1||2------------->1

八、条件操作符

这里我们主要说一种写法叫:三目运算符(exp1?exp2:exp3)

例如:          if(a>5)

                          b=3;

                    else 

                          b=-3;

写成三目运算符就是: a>5?3:-3

九、逗号表达式

   exp1,exp2,exp3,...expN

逗号表达式,就是用逗号分隔开的多个表达式;

逗号表达式是从左往右依次执行的;

注意:   整个表达式的结果都是最后一个表达式的结果。例如:

int a=1;

int b=2;

int c=(a>b,a=b+10,a,b=a+1);

这里的c是多少?  因为逗号表达式的结果都是最后一个表达式的结果 所以我们不难得出这里的c就是13。

到这里,基本就是我们c语言里常用的操作符了,给大家总结一下,有哪里不好也请大家多多指正!







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值