在初学C语言的过程中,有很多的知识点因为时常使用而被我们误以为它们的运用是非常简单的,从而使得我们对它的理解仅仅停留在表面,C语言中的操作符便是其种之一。今天小风将带着大家对各种操作符有一个全面而深入的了解,希望对大家有所帮助!
目录
前言
在学习之前,我想先问大家一些问题:大家对C语言中的操作符了解多少呢?它具体可以分为多少种类呢?单目操作符和双目操作的区别是什么?在大家的印象当中sizeof是操作符还是计算数组长度的函数呢?什么是逗号表达式?解引用操作符是什么?等等。
相信各位小伙伴们在平时学习编程的过程中通常使用的操作符无外乎这五种:算术操作符(+、-、*、/、%)、赋值操作符(+=、-=、*=、/=、%=)、比较常见的单目操作符(!、-、+、--、++)、关系操作符(>、>=、<、<=、!=、==)以及逻辑操作符(||、&&)
其实除此之外还有很多的操作符都没有了解,可能有人会说其他我们不太了解的操作符是不是不太重要啊,毕竟平时接触的也比较少。其实事实并不是这样,在小风看来每一种操作符都有其存在的价值和意义,现在我们接触的比较少只能说明我们学的还不够深,系统的了解操各种作符的知识和用法使我们打下一个坚实编程基础不可或缺的重要一环。
接下来小风将会结合各种代码示例为大家展示各种操作符用法(向大家平时经常使用的操作符将不做太多陈述),让大家有一个更好的理解!
一、操作符的分类
我们通常将操作符分为以下几类:
- 算术操作符
- 移位操作符
- 位操作符
- 赋值操作符
- 单目操作符
- 关系操作符
- 逻辑操作符
- 条件操作符
- 逗号表达式
二、算术操作符
- 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
- 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
- % 操作符的两个操作数必须为整数。返回的是整除之后的余数。
三、移位操作符
这一块的知识内容对于我们大家来讲是比较陌生的,小风想与大家详细讲解这种操作符的运用之前,先带着大家一起了解一下计算机存储数值的形式,这有助于我们对该操作符内在运行逻辑的理解。
背景知识
首先我们一般存储在变量中的整型数值,在计算机内部都是转化为二进制形式存储的,二进制的位数是计算机的型号所决定的,分为32位和64位(本篇文章中以32位为例,64位是同样的方式),并且都是这个数所对应的补码。可能很多小伙伴对这个名词不太了解,小风想说不用不用太过着急,我会在这里将会为大家详细介绍这块内容:
通常情况下整数的二进制表示形式可以表示成3种:原码、反码和补码。
- 原码:就是整数二进制普通的表示型式,也是我们最熟悉一种,不过当我们想要表示负数的时候,32位的最高位(二进制中最前面的位置)是1,正数为0。
- 反码:原码转化为反码时,首先需判断该整数的正负性,正数的反码就是原码,但如果是负数则原码的符号位保持不变,其他位置上的数按位取反(0变成1,1变成0),最终由原码这样转换过来的二进制数就是反码。
- 补码:反码+1后的结果就是补码。
注意ÿ