//运行环境为:Microsoft Visual C++ 6.0
#include <iostream.h>
//想想为什么
int b=3; //注意此声明赋值在main()之外
main ()
{
cout<<b++*b++<<"/t"<<b<<endl; //输入结果是: 9 3
cout<<++b*++b<<"/t"<<b<<endl; //输入结果是: 49 5
}
/******************************************************************
思路分析:
第一个cout,运行次序是:* ++ ++,
得到的结果分别是
* 【3*3=9】,
输出b++*b++=9 //b值为main 之前的b值,3
输出b=3 //b值为main 之前的b值,3
运行到“分号;”,下一步执行b++
++【3+1=4】, 保存b++后的值,下一步再执行b++
++【4+1=5】, 保存b++后的值,留待下一条语句用
第二个cout,运行次序是:++ ++ * ,
//特别注意:该语句中三个"<<",按序输出,
//但各“<<”之后的表达式运算不分先后,
//即其中的变量值均为上一条语句执行之后保留的值
得到的结果分别是
++【b=5+1=6】,b初值为上一条语句执行结束后b++两次后的值
++【b=6+1=7】,
* 【7*7=49 】,执行两次++之后,再执行*
输出*,49
再输出b,注意b值是上一条语句执行后的保留值:5
********************************************************************/