| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1227 人关注过本帖
标题:一个关于自增、自减的问题
只看楼主 加入收藏
zz6862532
Rank: 2
等 级:论坛游民
帖 子:8
专家分:12
注 册:2016-3-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
一个关于自增、自减的问题
程序代码:
#include <iostream.h>

void main()
{
    int i,j;
    i = 2;    j = 3;
    //cout<<i++*i++*i++<<","<<j++*--j*--j<<endl;    //运行结果为:8,4

    //cout<<--j<<endl;                           //运行结果:2
    //cout<<--j*--j<<endl;                       //运行结果:1
    //cout<<j++*--j*--j<<endl;                   //运行结果:4                        

}

都是分开运算的,互相是不影响的。
知道是自右向左运算,显示是自左向右的,
但是为什么会是8,4,
求帮忙!!

[此贴子已经被作者于2016-9-28 18:29编辑过]

2016-09-28 18:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
除了 cout<<--j<<endl; 之外,其它都是未定义行为,你可以搜索一下 序列点和副作用 的文章看看
2016-09-28 18:51
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
收藏
得分:0 
这么告诉你吧,这种问题你不要纠结,编译器不同结果也是会有不同的,一条算式改变两次以上同一个变量都是未定义行为
2016-10-14 10:47
快速回复:一个关于自增、自减的问题
数据加载中...
 
   



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

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