鱼C论坛

 找回密码
 立即注册
查看: 3918|回复: 6

求高手解答一下!

[复制链接]
发表于 2013-7-5 21:55:14 | 显示全部楼层 |阅读模式
1鱼币
程序如下:#include<stdio.h>
void main()
{
     int i=5,j=5,p,q;
         p=(i++)+(i++)+(i++);
         q=(++j)+(++j)+(++j);
         printf("%d\n%d\n%d\n%d\n",p,q,i,j);
}                   我编绎了一 下P=15,Q=22 不是很明白怎么得到这两个答案的特别是q=22搞得一头雾水请高手解答谢谢了!我才学C的别喷我啊:(

最佳答案

查看完整内容

你在C程序设计或小甲鱼视频哪里看到是吧?这是编译器的问题~很多人都遇到过。这个问题是在老版本的书上的了~~现在新版本的已经没有这道题~~如果你想去研究~~就用反汇编的方法。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-5 21:55:15 | 显示全部楼层
你在C程序设计或小甲鱼视频哪里看到是吧?这是编译器的问题~很多人都遇到过。这个问题是在老版本的书上的了~~现在新版本的已经没有这道题~~如果你想去研究~~就用反汇编的方法。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-5 22:09:34 | 显示全部楼层
你在C程序设计或小甲鱼视频哪里看到是吧?这是编译器的问题~很多人都遇到过。这个问题是在老版本的书上的了~~现在新版本的已经没有这道题~~如果你想去研究~~就用反汇编的方法。不过我觉得没必要去研究~不科学。弄多时间去搞其他的吧,这又不影响你接下来的学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-5 22:11:24 | 显示全部楼层

哪么请问我怎么才能进入反汇编我是新手请指教。怎样才能让我的程序进入反汇编我指的是怎样操作。小甲鱼的视频上没有讲清楚。谢谢了先
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-6 00:27:50 | 显示全部楼层
又是这问题啊!!!!!!!!!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-8 17:00:02 | 显示全部楼层
p=(i++)+(i++)+(i++);
013C13BC  mov         eax,dword ptr [i]  
013C13BF  add         eax,dword ptr [i]  
013C13C2  add         eax,dword ptr [i]  
013C13C5  mov         dword ptr [p],eax  
013C13C8  mov         ecx,dword ptr [i]  
013C13CB  add         ecx,1  
013C13CE  mov         dword ptr [i],ecx  
013C13D1  mov         edx,dword ptr [i]  
013C13D4  add         edx,1  
013C13D7  mov         dword ptr [i],edx  
013C13DA  mov         eax,dword ptr [i]  
013C13DD  add         eax,1  
013C13E0  mov         dword ptr [i],eax  
         q=(++j)+(++j)+(++j);
013C13E3  mov         eax,dword ptr [j]  
013C13E6  add         eax,1  
013C13E9  mov         dword ptr [j],eax  
013C13EC  mov         ecx,dword ptr [j]  
013C13EF  add         ecx,1  
013C13F2  mov         dword ptr [j],ecx  
013C13F5  mov         edx,dword ptr [j]  
013C13F8  add         edx,1  
013C13FB  mov         dword ptr [j],edx  
013C13FE  mov         eax,dword ptr [j]  
013C1401  add         eax,dword ptr [j]  
013C1404  add         eax,dword ptr [j]  
013C1407  mov         dword ptr [q],eax

这就是汇编的实现过程 看一下其实就是一个运算优先级的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-8 17:52:52 | 显示全部楼层
游健健jee 发表于 2013-7-5 22:09
你在C程序设计或小甲鱼视频哪里看到是吧?这是编译器的问题~很多人都遇到过。这个问题是在老版本的书上的了 ...

用反汇编只是 误导自己以为了解这题而已 叹气
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-20 01:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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