今天开始搞搞C++。
今天看了一下VC里的汇编代码,才有一点点搞懂了printf 和 cout 的工作方式(我用的是VC++6.0)。刚学汇编,有什么不对的地方请更正啊。
(1)printf 
int  i = 5 ;
printf(
" %d,%d,%d\n " ,i,i ++ ,i);       
printf(
" %d " ,i);

结果是5,5,5
        6
VC是先把要输出的3个变量push进栈里面,然后再做i++ 这一操作的,再调用printf函数。所以我们看到第一个printf输出的是3个未改变的i,到了第二个printf 时i 的值是5,所以push进栈的i=5,输出的是5。

(2)cout
int  i = 5 ;
cout
<< i << i ++<< i;
结果是655
不太懂流,不过根据汇编代码来看,cout是从后往前操作的,push i<-- i++ <--push i <-- push i;
所以最后一个i=5,第二个i=5,i++后第一个i=6.     如果后面有<<endl;的话就是先做endl操作。

那cout<<i<<++i<<i  的结果呢?不难知道是 665.



可以看到,printf 和 cout 的操作顺序不同。