| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1960 人关注过本帖
标题:谁能告诉我这是为什么
只看楼主 加入收藏
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
[bo][un]冰烨[/un] 在 2008-11-4 09:29 的发言:[/bo]

右结合应该是248,vc2005是左结合,左结合应该是238

貌似不是按左右结合来的
我左右都算了,调试的结果却与左右结合的结果都不相同
2008-11-04 09:42
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
百思不得其解啊
2008-11-04 09:55
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
楼上的兄弟怎么跑c++来了..你的java很棒...对于类的操作很娴熟...呵呵

学习需要安静。。海盗要重新来过。。
2008-11-04 09:56
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
[bo][un]sunkaidong[/un] 在 2008-11-4 09:56 的发言:[/bo]

楼上的兄弟怎么跑c++来了..你的java很棒...对于类的操作很娴熟...呵呵

最近找工作老考c++,一年多没接触这东西了,回顾一下,复习一下

神啊,给我工作吧!
2008-11-04 10:00
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我也找不到工作呢....我也和你一样在祈祷啊..呵呵

学习需要安静。。海盗要重新来过。。
2008-11-04 10:02
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
int s = (i=a++) + (j=--a) + (k=a--) + (u=++a);
cout<<s<<endl<<i<<endl<<j<<endl<<k<<endl<<u<<endl;
输出的i,j,k,u都是 1 这个想到了
但是s也输出为 1 为什么?

cout<<i<<endl<<j<<endl<<k<<endl<<u<<endl<<s<<endl;
但是把s放到最后输出 就是4了
2008-11-04 10:41
youhm
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2006-5-25
收藏
得分:0 
00401578   mov         dword ptr [ebp-4],1
8:
9:        int d=a++ + a-- + a++;
0040157F   mov         eax,dword ptr [ebp-4]
00401582   add         eax,dword ptr [ebp-4]
00401585   add         eax,dword ptr [ebp-4]
00401588   mov         dword ptr [ebp-8],eax
0040158B   mov         ecx,dword ptr [ebp-4]
0040158E   add         ecx,1
00401591   mov         dword ptr [ebp-4],ecx
00401594   mov         edx,dword ptr [ebp-4]
00401597   sub         edx,1
0040159A   mov         dword ptr [ebp-4],edx
0040159D   mov         eax,dword ptr [ebp-4]
004015A0   add         eax,1
004015A3   mov         dword ptr [ebp-4],eax
10:
11:       int s=a++ + --a + a-- + ++a;
004015A6   mov         ecx,dword ptr [ebp-4]
004015A9   sub         ecx,1
004015AC   mov         dword ptr [ebp-4],ecx
004015AF   mov         edx,dword ptr [ebp-4]
004015B2   add         edx,dword ptr [ebp-4]
004015B5   add         edx,dword ptr [ebp-4]
004015B8   mov         eax,dword ptr [ebp-4]
004015BB   add         eax,1
004015BE   mov         dword ptr [ebp-4],eax
004015C1   add         edx,dword ptr [ebp-4]
004015C4   mov         dword ptr [ebp-0Ch],edx
004015C7   mov         ecx,dword ptr [ebp-4]
004015CA   sub         ecx,1
004015CD   mov         dword ptr [ebp-4],ecx
004015D0   mov         edx,dword ptr [ebp-4]
004015D3   add         edx,1
004015D6   mov         dword ptr [ebp-4],edx
12:
13:       cout<<a<<endl<<d<<endl<<s<<endl;
2008-11-04 10:47
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
[bo][un]youhm[/un] 在 2008-11-4 10:47 的发言:[/bo]

00401578   mov         dword ptr [ebp-4],1
8:
9:        int d=a++ + a-- + a++;
0040157F   mov         eax,dword ptr [ebp-4]
00401582   add         eax,dword ptr [ebp-4]
00401585   add         eax ...

OH,汇编,丢了很多年了

听说这个代码在里跑出来的结果跟java中是一样的
2008-11-04 10:54
lockhawk
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2008-9-17
收藏
得分:0 
谢谢9楼!但是换一个式子又不对了。看看:
/*
#include <iostream.h>

int main()
{
    int a=1;
    int d = ++a + --a+ ++a;
    cout<<d;
    return 0;
}
*/
/*
a=1
++a
d=a
--a
d=d+a
++a
d=d+a    d应该等于5。但输出是d=4
*/


/*
#include <iostream.h>
int main()
{
    int a=1;
    int d=++a + ++a;
    cout<<d;
    return 0;
}
*/
/*
a=1
++a
d=a
++a
d=d+a   这样算应该是d=5 ,但输出d=6
*/

人生最大痛苦:虽然不明白你们说什么,但还是要听!
2008-11-04 18:21
youhm
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2006-5-25
收藏
得分:0 
int a=1;
int d = ++a + --a+ ++a;
等效下面的
int a=1;
++a;
--a;
int d=a+a;
++a;
d=d+a;


int a=1;
int d=++a + ++a;

等效为
int a=1;
++a;
++a;
int d=a+a;
2008-11-04 19:28
快速回复:谁能告诉我这是为什么
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.068797 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved