00:00
下面我们给大家讲一下运算符的优先级问题,同学们也知道,就是在C语言里边,咱们的运算符呢,种类很多,那就存在一个问题了,同学们。那如果说我们一个运算式或者一个表达式里面有很多的这种运算符,那么哪一个先运算,哪一个后运算呢?这就是我们要讨论的优先级问题。那首先我们来看一下C语言的运算符优先级的一个一览表,这个这个一览表很大哈,内容很多,大家可以先看到,很大从这里开始写的,我这里一共把它规划成了15个优先级,第一类的,比如像这个数组的下标,它也算是一种运算符,只是大家还没学而已。圆括号就小括号点。这个呢,就是成员变量的后面我们还有指针啊,后面还会讲到。嗯,那么还有像这个呃,符号加加减减乘,取地子符等等,第二类的,第三类除法,乘法,余数加减,第四类的左移右移等等等等,六大于小于这逻辑运算符。
01:16
对不对?关系运算符,这是按位按位抑或按位或逻辑与逻辑,或还有条件运算符,这是我们的一个三元运算符,对不对?三元运算符那这边呢,还有赋值运算符,第14类的还有逗号运算符。那么一共有这么多。大家可能会觉得,诶,这这东西怎么记呢?同学们听老师给大家总结一下,首先我们并不要求大家把它记,每一个都记得那么的详细,但是呢,你知道只要知道他的一些大概的优先级就可以,然后呢,在我们做开发或者是写程序的时候多写。慢慢慢慢你就掌握了,那现在呢,我把这个运算符这些表先拿过来哈,待会我再整理,还要整理,那我们先优先把这个运算符优先级小结一下。
02:11
哪些地方需要同学们知道呢?看到啊,结合的方向,它结合的方向。它的结就是运算符结合的方向呢,只有只有只有三个,三个是从右向左的。我整理整理其余。其余都是从左向右,大家,嗯,看到我们刚才的这个图。啊,看到刚才这个表吧。刚才你看我们这里面从这个从右向左的,这个是从右向左。就是我们说的条件运算符,也就是说三元运算符。啊,介绍三目运算对不对,这个是从右向左,这个呢也是从右向左,就是负值运算,还有还有一个从右向左的,我们找一下。
03:11
从右向左。诶,是不是还有这个。减减。减减。这些这些属于是从右向左,其他都是从左向右。就是从右向左,就是我们是这个方向走,而从左向右呢,是从这个方向走,明白。好,那这是我们所说的第一个,需要大家有印象的第二个。第二个第二个诶,这个怎么这么大了啊,第二个是所有注意听这句话所有的双目运算。双目,这个双目运算。什么叫双目运算呢?就是有两个运算符,两个操作符的双目运算符中。双双命中,只有只有负值运算符,大家看到没有,只有负值运算符,运算符就稍微麻烦点啊,运算符的结合方向。
04:07
结合方向是从右向左。是不是,是不是刚才讲了父子运算符是从运双目运算的。如果你又是双目运算。又是双目运算,而且呢在就是说在双目运算里面,只有负值运算符的结合方向是有是从右向左的,接着第三点,另外。另外哎,接着写啊,另外什么呢?同学们注意听另外两个从右从右向左的这个结合,结合运算符是什么呢?也很好记。一个是。一个是单目运算。单目运算。还有一个是什么呀,还有一个,还有一个是什么呀?三目运算,三目运算就是老师刚才给大家讲的什么什么东西啊,就是我们说的调三元运算,就是前面刚刚讲过的那个一个问号,那个东西还记得吧,也就是说。
05:15
一这个从咱们结合方向来说,从右向左呢,只有三个。其中双目运算里面只有负值运算符是从右向左的,另外不是还有两个从右向左吗?一个是单目运算。单目运算就是咱们所说的只有一个操作符的,而三目运算呢,还有一个三目运算也是从右向左的,其他都是从左向右。这下一下就记住了。一下就记住了,好,那那么这个单目运算,刚才老师也说了,再给大家看一下什么叫单目运算,看一个就行。大家看。单目运算。像这个你看负号。是不是单位运算啊,是不是单位运算,这个也算是单目运算,因为加加减减呢,咱后面不是只跟了一个运算,呃操作符吗?呃操作操作的一个变量吗?就说什么叫单位运算,就是你在加加减减后面只有一个变量,而不是像我们说的A加B或者是A减B这样子明明白意思吧。
06:21
好,接着我们继续来梳理。来梳理。第四点需要同学们记住的是,逗号的运算符优先级是最低的。逗号的运运算符优先级最低。这个就很好记。最后呢,我们来把这个优先级的一个大概的顺序说一下,我们说一下,说一下优先级的大概的顺序。大概的一个顺序,呃,我们比划一下,首先呢,算术运算符。大于。
07:00
它大于什么呢?大于关系运算符,关系运算符大于什么呢?大于逻辑运算符。逻辑运算符大于什么呢?逻辑运算符大于负值运算符。A负负值运算符。诶,负值运算符二运算符。负值运算符,那负值运算符大于什么呢?负值运算符它大于好像负子运算符就算最低的了,其他就是什么呢?就是那个我们所说的逗号运算符。逗号。逗号运算符,那这里面还有需要同学们注意的是,有一个地方要特别注意,就是逻辑运算符里边呢,有一个逻辑非它的级别较高。哎,你看我们刚才不是讲过吗?罗,罗继飞,罗继飞。你们看是不是这边有个逻辑飞呀,往上看。
08:00
这个逻辑非呢,它是属于单单目运算,它的级别是比较高的。其他的逻辑运算符在哪里,是不是已经往下面走了呀,同学们看是不是逻辑运算符就已逻辑与和逻辑或已经在11和12的这个这个级别了,很低的,所以说这面我们要特别的强调,在这里面逻辑运算符里面有一个要除外的是哪一个呢?就是我们的逻辑非除外。罗继飞。逻辑非除外。就这个除外。好的。那最后呢,我再多说一句,就是运算符它记得很多,你不用啊,注意注意同学们注意一点,就是不需要不需要刻意的刻意的去背。去背这个去记啊记。记住。不需要刻意的去记住这个东西,那么常用,我们经常编程常用,就慢慢慢慢有印象了,有印象。
09:10
印象OK,这个就是老师的一个小结吧,然后呢,后面还有一点要给同学们说的,就是我们运算符优先级呢,有个注意事项,就是上表中啊,优先级同为一的时候,就是同都是预算级都为一,这个级别的时候呢,如果同时出现,那么如何确定表达式的优先级呢?这里面我们专门说一把。大家看我这边总结了一句话,点的优先级高于星号,这个星号大家还不知道是干什么,这个是实实际上在讲,在讲这个指针的时候,我们用了一下,就是取它,取出它的值,点的优先级要高于这个心,记住就行了。而我们的这一个索引就是取出数组的某一个具体的元素的这个优先级高于心。函数的这个级别要高于新,最后等等和不等要高于位运算符。
10:07
然后呢,等等和不等要高于负值运算符,还有算术运算符,高于移位或叫位位移运算符。逗号预算符在所有运算符中优先级低。这些就是如果同学们发现。在同一个级别里边,你不知道谁高谁低的时候呢,大家可以把这个表拿过来看一下。因为这些东西你要一个去背太累了,说实话我也记不住,记不住,那么你只要记住什么呢?就是刚才老师在这里整理的一个大概的就行。然后在我们做题过程中,或者在开发的过程中,我们多用,慢慢自然就会有一个印象,好,同学们,那关于预算符优先级呢,我们就聊到这儿,给大家梳理一把,来梳理梳理哈。我们梳一下。运算符的优先级讲了什么东西呢,各位?
11:03
呃,首先呢,我们是不是应该有一个运算的一览表,先把这啊运算符优先级一览表。先把这个拿过来。那么这个一览表呢,老师就偷一个懒哈,我直接把这个给大家。给大家保保存一份,我复制一下。然后呢,咱们直接放在我们的笔记里面去,便于大家以后的复习,我直接插入到一个表格中,好大家有个印象就插进来了,诶这地方没有插进来过,过后这个没有格式了。这就很难背了,很难记哈,为什么没有格式呢?我再看看这边能不能带带格式。复制。复制好像没有格式哈。粘贴的时候为什么没有这样格式呢?看这有没有。
12:00
好了,这样子,如果这没有办法带一个格式,那这样子就没有意义了,我就干脆这样子好不好,同学们。你看这样子,我们处理一下,就是为了大家复习呢,我直接把这一个。文档给大家粘过来,大家以后打开看就行了,就双击就就可以看,也很方便,对不对,好,然后呢,我们是不是对运算符优先级它的一个特点做了一个小结,这是需要同学们要稍微的看一看的。就是刚才老师在讲的时候呢,针对运算的优先级,我整理了这么几句话,有个印象,最后是不是我们还说了一下运算符,它如果处于同一个级别,它的一个注意事项,是不是这张这个表格要大,大家有一个印象哈,但是我还说了一句话,不用专门的背,不用专门的背啊。注意事项,这运算符优先级的注意事项。好,把它整理一下。好,我格式化一,诶处理一下啊一下我们梳理一下。
13:03
那这边呢,有一个表格,我拉过来。表格就是刚才老师在幻灯片里面给大家看的,就这个。好,同学们。那关于。我们运算符的优先级的问题就给同学们说到这里,还是那句话。经常用,慢慢就熟悉了,大家也不要刻意去背好不好?OK,关于这一个预算符就聊到这里。
我来说两句