我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 求助解释一道c++题目! 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

ljpdxj



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 687
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-02-28
最后登陆: 2008-06-29

5come5帮你背单词 [ trench /trent/ n. 沟,渠 ]


求助解释一道c++题目!

Quote:

#include<iostream.h>
#include<stdio.h>
#include<memory.h>
void main()
{
    int x=20,y=35;
    x=y++ + x++;
    cout<<x<<y<<endl;
    cout<<"**************"<<endl;
    y= ++y + ++x;
    cout<<x<<y<<endl;
}

为什么结果是:5636
                          ***************
                            5794
        ???


[ 此贴被ljpdxj在2007-10-17 21:39重新编辑 ]
顶端 Posted: 2007-10-17 21:30 | [楼 主]
ready





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 159
威望: 0
浮云: 1455
在线等级:
注册时间: 2006-03-03
最后登陆: 2008-06-29

5come5帮你背单词 [ crate /kreit/ n. 轰响,坠毁,碰撞;v. 碰撞,粉碎 ]


Re:解释一道c++题目!

优先级,++在后面为先用后自加,第二为y=(++y)+(++x)
顶端 Posted: 2007-10-17 21:41 | [1 楼]
xcself





性别: 帅哥 状态: 该用户目前不在线
头衔: 原来我可以……
等级: 人见人爱
家族: 考研俱乐部
发贴: 3172
威望: 0
浮云: 471
在线等级:
注册时间: 2007-03-18
最后登陆: 2012-03-04

5come5帮你背单词 [ quarterly /'kwo:təli/ a. & ad. 季度的/地;n. 季刊 ]


其实是56 36    57 49
写错了是94


[ 此贴被xcself在2007-10-17 23:30重新编辑 ]
顶端 Posted: 2007-10-17 21:45 | [2 楼]
ljpdxj



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 687
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-02-28
最后登陆: 2008-06-29

5come5帮你背单词 [ ounce /auns/ n. 盎司,少量 ]


Quote:
引用第2楼xcself于2007-10-17 21:45发表的  :
其实是56 36    57 49

为什么是这样?
我不懂x=y+++x++
顶端 Posted: 2007-10-17 21:48 | [3 楼]
johnlynn



性别: 帅哥 状态: 该用户目前不在线
等级: 初出茅庐
发贴: 83
威望: 0
浮云: 1156
在线等级:
注册时间: 2006-12-26
最后登陆: 2010-09-25

5come5帮你背单词 [ dean /di:n/ n. 系主任,教务长 ]


LS不对吧...+的优先级要比++低些吧!
可以这样理解吧...后置自增运算符对变量的增1或减1是在该指令的最后来执行的...
也就是说, x=y++ + x++; 的执行顺序是x=20+35;x++;y++;此时x=56;y=36;
  y= ++y + ++x; 执行顺序为:x=57,y=37;y=94;
就理解了.按常规方法分析即可.
顶端 Posted: 2007-10-17 21:51 | [4 楼]
jason421





性别: 帅哥 状态: 该用户目前不在线
等级: 不日成名
发贴: 869
威望: 0
浮云: 225
在线等级:
注册时间: 2006-11-24
最后登陆: 2008-06-29

5come5帮你背单词 [ implement /'implimənt/ n. (pl.)工具,器具;vt. 实行,实施,执行 ]


x=56以后在执行++所以x=57

under不??
顶端 Posted: 2007-10-17 21:52 | [5 楼]
南方佳木



性别: 帅哥 状态: 该用户目前不在线
头衔: 要走了
等级: 人见人爱
家族: KOP★红军魂
发贴: 2258
威望: 0
浮云: 1106
在线等级:
注册时间: 2006-01-17
最后登陆: 2014-08-01

5come5帮你背单词 [ gasoline /'gæsəli:n/ n. (美语)汽油 ]


Quote:
引用第3楼ljpdxj于2007-10-17 21:48发表的  :

为什么是这样?
我不懂x=y+++x++

++优先级大于+的嘛
在变量后面先运算再加在前面的先加再运算
顶端 Posted: 2007-10-17 21:53 | [6 楼]
ljpdxj



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 687
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-02-28
最后登陆: 2008-06-29

5come5帮你背单词 [ skin /skin/ n. 皮,皮肤,毛皮,兽皮,外皮,外壳;vt. 去…的皮 ]


楼上两位蝈蝈分析的有道理!
顶端 Posted: 2007-10-17 21:57 | [7 楼]
yinx



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
家族: 丢丢
发贴: 2333
威望: 0
浮云: 1260
在线等级:
注册时间: 2006-09-15
最后登陆: 2009-05-11

5come5帮你背单词 [ look /luk/ vi. 看,瞧,看起来,显得;n. 看望,外表,脸色 ]


嗯,好像大家说的都是对的~
顶端 Posted: 2007-10-17 22:06 | [8 楼]
luwen



性别: 帅哥 状态: 该用户目前不在线
头衔: 无我相
等级: 人见人爱
发贴: 4372
威望: 0
浮云: 1120
在线等级:
注册时间: 2006-09-14
最后登陆: 2013-09-25

5come5帮你背单词 [ left /left/ a. 左边的,左侧的;ad. 向左,在左侧;n. 左面,左边,左派 ]


Quote:
引用第4楼johnlynn于2007-10-17 21:51发表的  :
LS不对吧...+的优先级要比++低些吧!
可以这样理解吧...后置自增运算符对变量的增1或减1是在该指令的最后来执行的...
也就是说, x=y++ + x++; 的执行顺序是x=20+35;x++;y++;此时x=56;y=36;
  y= ++y + ++x; 执行顺序为:x=57,y=37;y=94;
就理解了.按常规方法分析即可.

够详细的了
顶端 Posted: 2007-10-17 22:37 | [9 楼]
路客与刀客



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
家族: 梦魇图腾
发贴: 1980
威望: 0
浮云: 1186
在线等级:
注册时间: 2007-01-02
最后登陆: 2008-06-29

5come5帮你背单词 [ reckon /'rekən/ v. 考虑,认为,想,料想,计算,把…加起v. 来 ]


这种语句书写本身就不规范像“x=y++ + x++; ”这样的语句为什么不写成“x=(y++ )+( x++); ”呢?这样就不会有任何问题了。不过如果楼主像测试++variable和variable++的话,也不应该这样测试的。而一般的做法是如下
Quote:

int variable=10;
int a=++variable;
int b=variable++;
std::cout<<a<<std::endl;
std::cout<<b<<std::endl;

总之代码应该尽量的书写规范,为别人阅读你的代码,也为了自己好调试。
顶端 Posted: 2007-10-17 22:49 | [10 楼]
ljpdxj



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 687
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-02-28
最后登陆: 2008-06-29

5come5帮你背单词 [ next /nekst/ a. 下一个的,最近的,接下来的,邻近的;其次,然后,下次;a. & ad. 靠近,贴近 ]


Quote:
引用第10楼路客与刀客于2007-10-17 22:49发表的  :
这种语句书写本身就不规范像“x=y++ + x++; ”这样的语句为什么不写成“x=(y++ )+( x++); ”呢?这样就不会有任何问题了。不过如果楼主像测试++variable和variable++的话,也不应该这样测试的。而一般的做法是如下

总之代码应该尽量的书写规范,为别人阅读你的代码,也为了自己好调试。

谢谢楼上这位蝈蝈建议!
这道题目是我在网上看到的一道面试题目!
开始就是搞不明白结果为什么是这样!
顶端 Posted: 2007-10-17 23:33 | [11 楼]
zhd32



性别: 帅哥 状态: 该用户目前不在线
等级: 版主
家族: YD一族
发贴: 619
威望: 0
浮云: 543
在线等级:
注册时间: 2006-04-22
最后登陆: 2009-06-22

5come5帮你背单词 [ diploma /di'pləumə/ n. 毕业证书,学位证书,执照 ]


Quote:
引用第10楼路客与刀客于2007-10-17 22:49发表的  :
这种语句书写本身就不规范像“x=y++ + x++; ”这样的语句为什么不写成“x=(y++ )+( x++); ”呢?这样就不会有任何问题了。不过如果楼主像测试++variable和variable++的话,也不应该这样测试的。而一般的做法是如下

总之代码应该尽量的书写规范,为别人阅读你的代码,也为了自己好调试。

这位GG说得有道理哈
BS那种叫你认优先级或者是 i = (i++) + (++i)这种题
顶端 Posted: 2007-10-18 07:15 | [12 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.015033(s) query 5, Time now is:12-22 11:46, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号