注册 登录
编程论坛 C++教室

一个关于自增、自减的问题

zz6862532 发布于 2016-09-28 18:28, 1384 次点击
程序代码:
#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编辑过]

2 回复
#2
rjsp2016-09-28 18:51
除了 cout<<--j<<endl; 之外,其它都是未定义行为,你可以搜索一下 序列点和副作用 的文章看看
#3
StadyC2016-10-14 10:47
这么告诉你吧,这种问题你不要纠结,编译器不同结果也是会有不同的,一条算式改变两次以上同一个变量都是未定义行为
1