鱼C论坛

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

【例3.17】零基础入门学习C语言出现错误

[复制链接]
发表于 2012-5-26 10:06:48 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 xuaner0719 于 2012-6-29 14:43 编辑

#include <stdio.h>
void main()
{
        int i = 5, j = 5, p, q;
        p = (i++) + (i++) + (i++);
        q = (++j) + (++j) + (++j);
        printf("%d,%d,%d,%d",p,q,i,j);
}
未命名.jpg
QQ截图20120526100916.jpg
为啥我的不是15,24,8,8你们是这这样吗?
求解,难道...

小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-5-26 10:08:10 | 显示全部楼层
怎么也搞不出来是22啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-26 10:26:10 | 显示全部楼层
QQ截图20120526103007.jpg
去除括号,也这样,真是神了。坐等小甲鱼
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-5-26 11:55:51 | 显示全部楼层
自己用反汇编看一下编译器到底干了什么就一清二楚啦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-5-26 12:09:00 | 显示全部楼层
我运行的是15,24,8,8.。。。。。。。。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-5-26 12:13:18 | 显示全部楼层
3:    void main()
4:    {
00401010   push        ebp
00401011   mov         ebp,esp
00401013   sub         esp,50h
00401016   push        ebx
00401017   push        esi
00401018   push        edi
00401019   lea         edi,[ebp-50h]
0040101C   mov         ecx,14h
00401021   mov         eax,0CCCCCCCCh
00401026   rep stos    dword ptr [edi]
5:            int i = 5, j = 5, p, q;
00401028   mov         dword ptr [ebp-4],5
0040102F   mov         dword ptr [ebp-8],5
6:            p = (i++) + (i++) + (i++);
00401036   mov         eax,dword ptr [ebp-4]
00401039   add         eax,dword ptr [ebp-4]
0040103C   add         eax,dword ptr [ebp-4]
0040103F   mov         dword ptr [ebp-0Ch],eax
00401042   mov         ecx,dword ptr [ebp-4]
00401045   add         ecx,1
00401048   mov         dword ptr [ebp-4],ecx
0040104B   mov         edx,dword ptr [ebp-4]
0040104E   add         edx,1
00401051   mov         dword ptr [ebp-4],edx
00401054   mov         eax,dword ptr [ebp-4]
00401057   add         eax,1
0040105A   mov         dword ptr [ebp-4],eax
7:            q = (++j) + (++j) + (++j);
0040105D   mov         ecx,dword ptr [ebp-8]
00401060   add         ecx,1
00401063   mov         dword ptr [ebp-8],ecx
00401066   mov         edx,dword ptr [ebp-8]
00401069   add         edx,1
0040106C   mov         dword ptr [ebp-8],edx
0040106F   mov         eax,dword ptr [ebp-8]
00401072   add         eax,dword ptr [ebp-8]
00401075   mov         ecx,dword ptr [ebp-8]
00401078   add         ecx,1
0040107B   mov         dword ptr [ebp-8],ecx
0040107E   add         eax,dword ptr [ebp-8]
00401081   mov         dword ptr [ebp-10h],eax
8:            printf("%d,%d,%d,%d",p,q,i,j);
00401084   mov         edx,dword ptr [ebp-8]
00401087   push        edx
00401088   mov         eax,dword ptr [ebp-4]
0040108B   push        eax
0040108C   mov         ecx,dword ptr [ebp-10h]
0040108F   push        ecx
00401090   mov         edx,dword ptr [ebp-0Ch]
00401093   push        edx
00401094   push        offset string "%d,%d,%d,%d" (0042201c)
00401099   call        printf (004010e0)
0040109E   add         esp,14h
9:    }
自己看吧,我就不解释了。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-5-26 12:16:54 | 显示全部楼层
跟编译器有关,tc是24,vc是22
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-5-26 14:57:45 | 显示全部楼层
p=5+6+7;q=6+7+8;p最后=8;q最后=8;ok
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-5-26 15:52:54 | 显示全部楼层
按理说,应该是15.24.8.8.得回去研究看看,
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-5-26 17:58:54 | 显示全部楼层
http://bbs.fishc.com/forum.php?m ... 6orderby%3Ddateline
亲,这篇帖子说的很清楚的哦!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-6-9 22:10:58 | 显示全部楼层
小甲鱼在汇编里说了,自己反汇编一下就明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-6-11 09:13:20 | 显示全部楼层
你们同意Z追风少年 说的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-6-11 13:09:30 | 显示全部楼层
我看咯 10L 发的那个连接 进去看后 明白了 很多:lol
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 12:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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