printf、cout 取值输出问题,(从右向左求值,从左向右输出??)??

int i=8;
printf("%d/t%d/t%d/t%d/t%d/t%d/n",i,++i,--i,i--,i++,-i--);
printf("%d/n", i);

vc6.0 debug版本为:
8       8       7       8       8       -8
7
vc6.0 Release版本输出为
7       7       7       8       8       -8
7

vs2005 debug:
7       7       7       8       7       -8
7

vs2005 release:
8       8       8       8       8       -8
7
原因可以参考一下帖子:
http://community.csdn.net/Expert/topic/5386/5386406.xml?temp=3.261966E-02

又:
int i=8;
cout << i << ++i << --i << i-- << i++ << -i-- << endl;;
cout << i << endl;

vs2005 debug
77787-8
7
vs2005 release:
88888-8
7
今天看的晕乎乎的,涉及到不同编译器调用约定不用,压栈顺序不同等等,若有更好的解释请告我一下。呵呵 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值