读书人

求两段类似代码解释解决方案

发布时间: 2012-03-21 13:33:15 作者: rapoo

求两段类似代码解释
今儿个在论坛上看到一个关于i++ + ++i的疑问,自己去做了下,发现两种代码答案不一样。
[code=C/C++][/code]
#include<stdio.h>
#include<iostream>
using namespace std;

int main()
{
int a=3;
int b=0;
b=a++ + ++a;
cout<<a<<" "<<b<<endl;
return 0;
}

然后还有个是c的代码
[code=C/C++][/code]
#include<stdio.h>

int main()
{
int a=3;
int b=0;
b=a++ + ++a;
printf("%d %d\n",&a,&b);
return 0;
}
发现第一段答案是3 ,8
第二段是3866304 3866292;
求解释,环境是vs2010.
新手,给不起分啊

[解决办法]
第一个应该是5 8 吧,a++ + ++a很多编译器都是从右往左扫描的;
后面一个睁大眼睛看清了是&a,取地址,printf("%d %d\n",&a,&b);

读书人网 >C++

热点推荐