首页 > 编程知识 正文

c语言最低级运算符,c语言指针运算符优先级

时间:2023-05-06 19:25:22 阅读:40442 作者:3490

int k=15,t;

t=kk==5 k;

开车后得到的k为什么是15而不是16?

=====

要理解这个问题,可以分为三个步骤:

1 .重点记住

=的优先顺序低于==,结合性为右

结合性

的优先顺序低于==,其结合性为左结合性

==的优先顺序更低,其结合性为左结合性

的优先顺序这一公式中最高,其结合性为右结合性

2 .总是觉得

逻辑运算符和||会发生短路现象:

* *

的左边为假时短路,此时右边的公式不再执行。 (请注意,这是右边的另一个表达式,而不是右边所有语句结束之前的表达式! )

|||*:||的左边为真时短路,不再执行||右边的公式

3 .详细推导

表达式t=kk==5 k根据运算符的优先级和组合性确定,表达式如下:

t=(k ) k==5) ) )。

(k ) )

的结合性,在表示中一定要先验证最初的两边是: k

(k==5) )。

k为15,左边为真,没有短路,继续看右边,表现k==5明显为假,值为0,所以公式k

(k==5)为假,值为0。 在这种情况下,表达被简化如下。

t=(0) k ) )

在这种情况下,表达式中的是原始表达式中的第二个,让我们看看表达式中的0

(k )明显左边为0,发生短路时不再执行) k ),因此k保持原来的值不变为16。 此时,原始的公式进一步简化如下。

t=0

最后,t的值是0,k的值不是15

这样解释,明白吗?

=========

计算机不是人。 不像人类那样,直接找到优先顺序最高的*号码进行运算

了解程序的编译过程非常重要

附录: c语言运算符和优先级

运算符的语义运算符类型结合方向

15 )圆括号用单眼从左到右

[]下标运算符-结构成员运算符,指向结构成员运算符14! 非逻辑运算符

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。