萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

楼主: musicbug

很奇怪的错误,我怎么都看不出来,高手指点一把,不胜感激!!!

[复制链接]
 楼主| 发表于 2003-2-12 19:04 | 显示全部楼层
呵呵,总是贪玩,现在补习C++。
你的主页刚看了,不错。
你办得GMBH?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2003-2-12 19:06 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2003-2-12 19:27 | 显示全部楼层
我bebug了半天
i=(++i)+(++i)+(++i);
    2  +  4  +  4
只有这种可能。
因为i=(++i)+(++i)=6;
理论上等于5,而且如果分别算也会等于5。
你刚才说这个你可以解释" (++a)+(++a)编译得到答案与计算一样"


最初发表由 musicbug
[B]正在思索。


        #include<iostream.h>

        void main()
        {
                int i=1,a=0,b=0,c=0;
               
                a=++i;
                cout<<"a: "<<a<<endl;
                i=1;
                b=(++i)+(++i);  //这里是6,这是关键。。。
                i=1;
                cout<<"b: "<<b<<endl;
                i=1;
                c=(++i)+(++i)+(++i);
                cout<<"c: "<<c<<endl;
               
        }

a: 2
b: 6
c: 10 [/B]

呵呵,这个梦不难。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2003-2-12 19:36 | 显示全部楼层
说了半天,我的问题还没有解决呢,呵呵。
忘记问你,你的编译器是什么呢?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2003-2-12 19:39 | 显示全部楼层
aber

因为i=(++i)+(++i)=6;
理论上等于5?

aber...ne... erst ++i also i=2

nach mal ++i also i=3

am ende i=3+3=6

deswegen i=6

这是我的理论,因为++i是i在用前先自行加1,又由於括号的优先级相同且大於计算符号,所以先进行自加,然后两者相加,不知道这样解释对不对?

但是三个以上我觉得是3+3+4
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2003-2-12 19:39 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2003-2-12 19:51 | 显示全部楼层
最初发表由 Mephis
[B]aber

因为i=(++i)+(++i)=6;
理论上等于5?

aber...ne... erst ++i also i=2

nach mal ++i also i=3

am ende i=3+3=6

deswegen i=6

这是我的理论,因为++i是i在用前先自行加1,又由於括号的优先级相同且大於计算符号,所以先进行自加,然后两者相加,不知道这样解释对不对?
※※运算符号得级别最高得。

但是三个以上我觉得是3+3+4 [/B]

为什么?按照你的说法,应该是4+4+4了,可见是不对得。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2003-2-12 19:55 | 显示全部楼层
所以理论和实践得不到同意嘛

那个理论是在一本书上的习题看到的,应该不会错吧
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2003-2-12 19:57 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2003-2-12 21:27 | 显示全部楼层
我得也是MS VC6
因为++i是i在用前先自行加1,又由於括号的优先级相同且大於计算符号,所以先进行自加,然后两者相加,

括号得优先级低于++运算符。这一点我是肯定得。
你可以去掉括号再试试        a=++i+ ++i+ ++i;
答案一定是一样得。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+1, 2025-3-12 22:32 , Processed in 0.072841 second(s), 15 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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