鱼C论坛

 找回密码
 立即注册
查看: 2672|回复: 2

运算等级,求解惑

[复制链接]
发表于 2022-7-3 17:49:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-3 17:57:44 | 显示全部楼层
运算符优先级只用于限定相邻运算符的运算顺序。
k==j==i+5; 总共三个运算符。后两个运算符优先级限制了第二个 == 运算前必须先运算 + ,但并不影响第一个 == 的运算,第一个 == 附近并不存在优先级比它高的运算符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-7-3 21:35:39 | 显示全部楼层
顺序:
先按优先级高来
同级从左到右
表达式计算顺序:
k==j
i+5
(k==j的结果)==(i+5的结果)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 19:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表