求两段类似代码解释
今儿个在论坛上看到一个关于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);