C语言操作符总结

c语言中关于操作符部分的学习,可以主要分为两个部分:操作符和表达式。

这里首先是列举各种操作符,在C语言中,一般主要的操作符有这么几种:算数操作符,移位操作符,位操作符,赋值操作符,单目运算符,关系操作符,逻辑操作符,条件操作符,逗号表达式以及比较特殊的几个操作符。

算数操作符
算数操作符,主要是:+ , -, *, /, %

+   //加
-   //减
*   //乘
/   //除
%   //模

这些都是比较常见的,不光是在C语言中学习到,事实上从小我们学习数学都常用到他们,所以这里没什么多说的,就是有几点注意事项:

  1. 除了取模运算,也就是取余数的%操作符,其他的几个操作符都是可以用于整数运算和浮点数运算的;
  2. %取模运算在这里特殊的在于,符号两边的操作数都必须是整数;
    3./操作符,还是与数学上一样,注意第二个操作数不是0就行,这里如果两个操作数都是整数,就按整数除法运算;而只要其中不管哪个操作数为浮点数,就按照浮点数除法运算。

移位操作符
移位操作符,分别是左移操作符 << 和右移操作符 >> ,(PS:移位操作,是特别针对二进制序列进行的操作)
左移操作的 移位规则:
  将所有有效位整体向左移动,具体移动多少位是自己决定的,并抛弃左边最高位,并在右边空出来的位置补0
右移操作的 移位规则:
  则是抛弃将所有有效位整体向右移动,并且挤掉最低有效位,并在空出来的最高位补0
至于有符号数的符号位是否影响移位运算,这里不细说。后面再详细讨论。
位操作符
位操作符有:&,|, ^,作用分别是

&  //按位与运算
|   //按位或运算
^  //按位异或




所谓按位与,就是同一位上相同取1,相异为0;而按位或,是有一个1就是取1,两个都是0,则取0;而按位与或,则是同一位相异取1,相同取0
赋值操作符
  = 是用来进行赋值的
这里要注意这个等号在C语言里不是等号的意思,它是给变量写入一个值。而等于在C语言里,我们是用==
来定义的。而事实上,将(=)与==混用,是我们学习编程初期,比较常犯的一个错误。然而,有时候,你在程序里把他们混用了,编译时,却没有报错,但在程序运行时却会发生不可预知的错误。
相应的对赋值操作,为了简化代码,将赋值与其他操作进行结合,就有了复合赋值符的概念:+=,-=, *=, /=, %= , <<=, >>=,&=,|=,^=。
都是将符合赋值的左右操作符进行相应的操作,并将结果覆盖性的重新赋给左操作数。
单目运算符

!   //反操作
-    //负值
+   //正值
&   //取地址
sizeof  //操作数类型长度
~         //二进制按位取反
--
++
*     间接访问操作符



这里就是要注意,将取地址操作与按位与进行区分。区分的办法也不难,就是取地址,它是对一个变量进行取地址,所以只是操作符右边有操作数;而与运算,是两个操作数之间的,所以,与操作符两边都会有操作数。
并且,要注意前置++,前置–,是先进行运算再使用数据;而后置++,后置–,则是先使用数据,在进行运算。
关系操作符
所谓关系操作,就是进行判定,两个操作数,或两个表达式的结果,或者操作数与表达式之间的关系。没有什么多说的,只要注意,向上面一样,区分=与==的区别就行。
逻辑操作符
逻辑与,逻辑或的部分,需要区分他们与按位与,按位或的差别。以及他们自己的特点:逻辑操作表达式中的短路现象这么一个,比较特别的情况。
逗号表达式这里,是把多个表达式放在一起,使用逗号进行分隔。逗号表达式从左向右依次序执行,但整个表达式的结果一般是最后一个表达式影响的,是最后一个表达式的结果
条件操作符

return1>2?1:0

符的一个典型应用就是三目运算符,比如我们进行比较大小的:
特殊的几个操作符
另外还可以列举的几个特殊的操作符有:
1.下标引用操作符[ ]
  下标引用操作符一般是用于数组元素的访问:array[index],这个array就是数组名,而这个索引值index就是指的数组元素的位置,而数组元素的存储的位置,从0到n-1。
2.函数调用操作符()
  对于函数调用操作符,()里面的一般是传递给函数的参数,当然函数里可以不对数据进行操作,那么这时就可以不往里面传参数了
3.访问结构体成员的. 和访问结构体指针的->
  对于结构体这块,有:结构体变量.成员名 结构体指针->成员名
其实对结构体指针,也可以用*(结构体指针).成员名,但是这样一般会引起歧义,因而使用了指向操作符->来代替。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值