c++中cout的输出函数

来源:百度知道 编辑:UC知道 时间:2024/05/11 15:49:56
i =2;
j = 3;
cout<<i++*i++*i++<<","<<j++*--j*--j<<endl;
最后输出结果围 8,4
请问程序的执行顺序
我算的与它得出的结果不同,望高手们解答。。
最后的结果就是8,4
二楼的先生您好,
当我输出语句这样写 j--*j--*j++输出结果为1 相当于1*1*1,但j++*j--*j-- 这样时运行结果为4 小弟实在明白

首先要搞懂++i和i++的区别:
令i = 2;
++i,i++;都是将i加1,但
++i是返回i加1后的值,故等于3即(++i)=3;
i++是返回i加1之前的值,故还是等于2即(i++)=2;

但之后两者的i都等于3;

你的答案有问题,运行结果应该是8, 1

你用的什么编译器?我用的是Visual Studio 2008。或许是编译器的问题

i++中的自加1永远在最后执行;

i++*i++*i++;就相当与
i*i*i;
i = i+1;
i = i+1;
i = i+1;

则j++*--j*--j;相当于
j*--j*--j;
j = j + 1;
两个--j先同时执行,--j返回j的当前值;在执行j,后执行其他等等

其实这些问题都是钻牛角尖的问题,真正写程序的人没人会写成这样,让自己都会犯糊涂?这些都是那些编教科书的人惹的祸,无聊去钻牛角尖。

只要搞懂++i和i++的区别就行了;

如果需要楼主这样的,可以想将++i、i++、--i、i--等赋值给一个变量再进行操作

i--,i++是先运行完整个语句后,i再i-=1或+=1
--i,++i是在整个语句运行前先i-=1或+=1再运行这个语句2*2*2=8
1*2*2=4