运算等级,求解惑
#include <stdio.h>void main()
{
char c = 'k';
int i = 1, j = 2, k = 3;
float x = 3e+5, y = 0.85;
printf("%d,%d\n", 'a'+5<5, -i-2*j>=k+1);
printf("%d,%d\n", 1<5<5, x-5.25<=x+y);
printf("%d,%d\n", i+j+k==-2*j, k==j==i+5); //根据运算符的优先等级为什么不是先运算i+5?
}
k==j==i+5;
老师视频里面讲先运算K==j,
这是一个嵌套的表达式,
前面讲
+的运算等级大于==,
我觉得应该先求i+5的值
然后再比较k==j
运算符优先级只用于限定相邻运算符的运算顺序。
k==j==i+5; 总共三个运算符。后两个运算符优先级限制了第二个 == 运算前必须先运算 + ,但并不影响第一个 == 的运算,第一个 == 附近并不存在优先级比它高的运算符 顺序:
先按优先级高来
同级从左到右
表达式计算顺序:
k==j
i+5
(k==j的结果)==(i+5的结果)
页:
[1]