C语言中printf与i++,C++中的cout
一,printf与i++
1,C语言中的printf是自右向左输出,。
2,而i++与++i不同的
i++首先取得i的值,下一行时候i = i + 1;
++i,首先i = i + 1,再取得i的值。
比如
int i=8; printf("%d,%d,%d,%d,%d,%d\n",++i,--i,i++,i--,-i++,-i--);
输出结果是:8,7,8,8,-8,-8
在“printf("%d,%d,%d,%d,%d,%d\n",++i,--i,i++,i--,-i++,-i--);”语句中,i++的时候i值不变,在下一行时候,才会执行i = i + 1;++i时候i的值加1。
二,C++中cout
1,C++中cout是自右向左将数据存入栈,本数据流的数据存入完毕,再输出。
cout << 3 << 4 <<endl; //首先将4 入栈,再将3入栈,之后根据后进先出原则,先输出3,再输出4;
2,如果上面3、4是函数,那么先执行函数,把函数结果入栈。
比如
#include<iostream> using namespace std; int fa() { cout<<"fa()"<<endl; return 1; } int fb() { cout<<"fb()"<<endl; return 2; } int fc() { cout<<"fc()"<<endl; return 3; } int main() { cout<<fa()<<fb()<<fc()<<endl; return 0; }
执行cout时候,先执行fc(),输出fc(),返回3值入栈;
再执行fb(),输出fb(),返回2值入栈;
再执行fa(),输出fa(),返回1值入栈;
最后输出123
3,如果想先输出fa(),在输出fb(),fc()。需要设置三个输出流,这样有三个栈。