第10个课后作业,第五题题目错误
请描述表达式 a < b && c < d 的求值顺序(先求什么、再求什么、最后求什么)#include <stdio.h>
int main()
{
int a = 0, b = 1, c = 2, d = 3;
a > b && c < d;
return 0;
} 先算a>b然后c<d,最后&&
257: if(a > b && c < d)a=b=c=d;
00132244 8B 45 F4 mov eax,dword ptr
00132247 3B 45 E8 cmp eax,dword ptr
0013224A 7E 1A jle my_delete+16h (0132266h)
0013224C 8B 45 DC mov eax,dword ptr
0013224F 3B 45 D0 cmp eax,dword ptr
00132252 7D 12 jge my_delete+16h (0132266h)
00132254 8B 45 D0 mov eax,dword ptr
00132257 89 45 DC mov dword ptr ,eax
0013225A 8B 4D DC mov ecx,dword ptr
0013225D 89 4D E8 mov dword ptr ,ecx
00132260 8B 55 E8 mov edx,dword ptr
00132263 89 55 F4 mov dword ptr ,edx 单独一个表达式没有意义 本帖最后由 小亦003 于 2021-12-12 20:53 编辑
这个是用来判断的,先判断a是否大于b5及c是否大于d,再判断两者的逻辑与(&&)
本帖最后由 jackz007 于 2021-12-13 01:33 编辑
第一步,先求 a < b 的值,由于 a < b 为真,整个表达式的值并不能因此而得到确定,所以,还需要有第二步,继续求取 c < d 的值,最后才是第三步,根据 c < d 的值,确定 a < b && c < d 的值。
假如 a < b 的值为假,则整个表达式的值足可以被锁定为假,就不再需要第二步和第三步了。 jackz007 发表于 2021-12-13 01:22
第一步,先求 a < b 的值,由于 a < b 为真,整个表达式的值并不能因此而得到确定,所以,还需要有 ...
ok
小亦003 发表于 2021-12-12 20:49
这个是用来判断的,先判断a是否大于b5及c是否大于d,再判断两者的逻辑与(&&)
嗯嗯,记记 wp231957 发表于 2021-12-12 20:36
单独一个表达式没有意义
好的 jhq999 发表于 2021-12-12 20:35
先算a>b然后c
这个是debug吗。。 jhq999 发表于 2021-12-12 20:35
先算a>b然后c
{:5_99:}看不懂。。这个c语言我学的第三遍了。。每次都会在指针的部分放弃。。这次一定坚持下去 周云成 发表于 2021-12-13 21:04
看不懂。。这个c语言我学的第三遍了。。每次都会在指针的部分放弃。。这次一定坚持下去
指针就是内存地址有啥难的? 周云成 发表于 2021-12-13 20:59
这个是debug吗。。
反编译 jhq999 发表于 2021-12-13 21:14
指针就是内存地址有啥难的?
真实,,其实就是我没好好学,
页:
[1]