您的位置:首页 > 编程语言 > C语言/C++

c语言操作符

2017-11-22 23:39 120 查看
C语言运算符是说明特定操作的符号,它是构造C语言表达式的工具 。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。其实c语言的操作运算符,你可以把他想象成c语言中内置的一些简单函数。

操作符主要分为以下几大类:

1. 算术运算符

 常见的算数运算符有+、-、*、/、%、++、——

 加减乘就不用过多的介绍了他们的操作数可以是整形也可以是浮点型。/这个操作符是c语言中的除法操作符,他有一些和其他操作符不同的地方,当两个数据进行除法的时候,只要其中一个数字是浮点型数据,那么得出来的结果就是浮点型数据。

而我们常见的%的操作类型必须是整型数据。n=i%m;其中i和m都需要是整型数据。

 


a++、++a这两个到底有什么区别可能很多人都还闹不懂,在我们目前学的程序中,暂时这两个没有区别,他两个的区别用语言说出来就是,a++的意思就是说 遇到这个语句先调用a再去执行他的++语句,而++a是遇到这个语句先++再去调用他的a。这里我用一个程序来说明这两个的区别。

 

int a = 1;

int b = 0;

b = a++;

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

大家可以看一下这段代码,这个输出之后的结果是什么。a=2,b=2?

实际上结果是



那么再看下一段代码

int a = 1;

int b = 0;

b = ++a;

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

如果代码是这样结果是什么呢?



现在大家可能就清楚一些这两个到底的区别在哪里了,b=a++,先将a的值赋给b然后将a++;

而b=++a的意思就是说先将a+1然后再把a的值给b。

2 赋值操作符

  赋值运算符大家肯定都很熟悉,学c语言刚开始这个字符就会接触这个字符,每个程序中也必定会用到这个字符就是我们常见的‘=’。a=b,b=1,等等。



这段代码我没有直接复制,而是截图,就是想让大家看到vs给我提示出的红线,很多人问c语言里边能不能用连等,这个我认为没有确切的答案,看截图中的代码就知道,上边的代码是错的,下边的代码是对的,我也不多解释,解释再多不如图表现的好。

虽然连等是可以实现的,但是我想大家在读代码的时候都不希望看到这种代码。还是a=b;b=c+1;看起来更让人易懂一些。说到赋值运算符还有很多符合赋值运算符例如+=、—=,我一般也没有写成这种的习惯,如果大家有可以去百度一些多做一些了解。

还有一个要说的就是赋值运算符他的运算等级非常低,所以总是先执行等号后边的语句,之后才会对等号左边进行赋值。

3 逻辑运算符

 逻辑运算符有&&逻辑与、||逻辑或两种。逻辑与看起来复杂其实就是我们日常生活中的并且。





 

If后边的什么时候判断为真而执行下边的语句呢?就是当a、b都是1的时候所以&&意思我们常说的并且,也就是有假则假,全真才真。

所以||我就不用写代码了,||就是我们常说的或,也就是说有真则真,全假才假。

4关系运算符

  常见的就是<  <=   ==   >   >=   !=,表现两个成员的关系的运算符,就叫关系运算符。关系运算符没有什么可说的就是。a=b是赋值,比较a和b是否相等应该是a==b。另一个就是不等于符号!=,感叹号在等号的左边。这个记不住你就想不等于这三个字,先是不再是等于,所以是先是!再是=。

5位运算符

位运算符也是我最近刚开始接触到,在电脑中数据都是二进制来存储的,位运算符主要就是针对这些二进制的计算。主要有按位与&,按位或|,按位异或^,这三个。这里你要把=这三个与刚刚所说的逻辑运算符区分开,逻辑运算符是在操作一整个数字,而这三个则是在操作某一个数字32个二进制位中的某一位或者某些位。

在计算机中int整型数都是占用了四个字节,也就是32个二进制位数来表示这个数字。

00000000 00000000 00000000 00000001  这一串数字在计算机中代表数字1。

00000000 00000000 00000000 00000011 而这一串数字在计算机中代表数字3。

 


按位与的意思就是说将这两个数字的32位二进制位一一进行比较,有0则0,全1则1;按位或就是有1则1,全0则0;按位异或比较特殊,它的意思是,如果这二进制位中两个数字的对应位相同则为0不同则为1;

 


用程序来验证一下。结论正确。

6
三目运算符(条件运算符)
? :


运算所需一个变量的运算符交单目运算符,三目运算符自然就是运算需要三个变量。b ? x : y这就是一个三目,运算符,他的运算方式是如果b是真的那么执行x如果b是假的那么执行y。

 




直接上图,简单明了。

7 移位操作符

 移位操作符分为两种一种是左移位一种是右移位,和按位与、按位或一样,移位也是在操作这个数据的32个二进制位,左移操作就是将这个32位数字进行,左移动,那样的话这个数据的第一个二进制位就会丢失,然后系统自动在这个数据最后一位补0

 




这两个图都将a向左移动了一位,但是1移动成了2,-1移动成了-2,大家都知道32位中的第一位应该是存储的数据的正负号,那左移一位的时候为什么没有丢失负号呢?因为在移位的时候,c语言的左移位是算术移位,正负是不会有所改变的,右移动也是这样的会保持原来数字的符号位不变。

 剩下的运算符还有一些,我认为并没有太多要进行介绍的必要,剩下的就简单的说一下,逗号运算符像我们常用的if语句吧,if(a==1,b==1,c==1)在这个语句中,真正起决定的判断作用的是最后一个判断语句,还有下表引用操作符,就是我们常用的数组里边a[2]中的[]这个符号,他的操作数有两个一个是数组名一个是数组中元素的下标。

 这是我对c语言一些操作符的简单介绍和个人见解如果有错误的地方,希望大家及时告诉我。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言