鱼C论坛

 找回密码
 立即注册
查看: 1032|回复: 12

[技术交流] 第10个课后作业,第五题题目错误

[复制链接]
发表于 2021-12-12 20:25:04 | 显示全部楼层 |阅读模式

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

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

x
请描述表达式 a < b && c < d 的求值顺序(先求什么、再求什么、最后求什么)
#include <stdio.h>

int main()
{
        int a = 0, b = 1, c = 2, d = 3;

        a > b && c < d;

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-12 20:35:54 | 显示全部楼层
先算a>b然后c<d,最后&&
  1. 257:         if(a > b && c < d)a=b=c=d;
  2. 00132244 8B 45 F4             mov         eax,dword ptr [a]  
  3. 00132247 3B 45 E8             cmp         eax,dword ptr [b]  
  4. 0013224A 7E 1A                jle         my_delete+16h (0132266h)  
  5. 0013224C 8B 45 DC             mov         eax,dword ptr [c]  
  6. 0013224F 3B 45 D0             cmp         eax,dword ptr [d]  
  7. 00132252 7D 12                jge         my_delete+16h (0132266h)  
  8. 00132254 8B 45 D0             mov         eax,dword ptr [d]  
  9. 00132257 89 45 DC             mov         dword ptr [c],eax  
  10. 0013225A 8B 4D DC             mov         ecx,dword ptr [c]  
  11. 0013225D 89 4D E8             mov         dword ptr [b],ecx  
  12. 00132260 8B 55 E8             mov         edx,dword ptr [b]  
  13. 00132263 89 55 F4             mov         dword ptr [a],edx  
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-12 20:36:30 From FishC Mobile | 显示全部楼层
单独一个表达式没有意义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-12 20:49:32 | 显示全部楼层
本帖最后由 小亦003 于 2021-12-12 20:53 编辑

这个是用来判断的,先判断a是否大于b5及c是否大于d,再判断两者的逻辑与(&&)
微信图片_20211212204322.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-13 01:22:09 | 显示全部楼层
本帖最后由 jackz007 于 2021-12-13 01:33 编辑

       第一步,先求 a < b 的值,由于 a < b 为真,整个表达式的值并不能因此而得到确定,所以,还需要有第二步,继续求取 c < d 的值,最后才是第三步,根据 c < d 的值,确定 a < b && c < d 的值。
       假如 a < b 的值为假,则整个表达式的值足可以被锁定为假,就不再需要第二步和第三步了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 20:57:41 | 显示全部楼层
jackz007 发表于 2021-12-13 01:22
第一步,先求 a < b 的值,由于 a < b 为真,整个表达式的值并不能因此而得到确定,所以,还需要有 ...

ok
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 20:58:18 | 显示全部楼层
小亦003 发表于 2021-12-12 20:49
这个是用来判断的,先判断a是否大于b5及c是否大于d,再判断两者的逻辑与(&&)

嗯嗯,记记
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 20:58:49 | 显示全部楼层
wp231957 发表于 2021-12-12 20:36
单独一个表达式没有意义

好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 20:59:51 | 显示全部楼层

这个是debug吗。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 21:04:15 | 显示全部楼层

看不懂。。这个c语言我学的第三遍了。。每次都会在指针的部分放弃。。这次一定坚持下去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-13 21:14:43 | 显示全部楼层
周云成 发表于 2021-12-13 21:04
看不懂。。这个c语言我学的第三遍了。。每次都会在指针的部分放弃。。这次一定坚持下去

指针就是内存地址有啥难的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-13 21:15:53 | 显示全部楼层
周云成 发表于 2021-12-13 20:59
这个是debug吗。。

反编译
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-13 21:40:42 | 显示全部楼层
jhq999 发表于 2021-12-13 21:14
指针就是内存地址有啥难的?

真实,,其实就是我没好好学,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 03:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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