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
",++i,--i,i++,i--,-i++,-i--);

输出结果是:8,7,8,8,-8,-8

在“printf("%d,%d,%d,%d,%d,%d ",++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;
}
View Code

执行cout时候,先执行fc(),输出fc(),返回3值入栈;

                    再执行fb(),输出fb(),返回2值入栈;

                    再执行fa(),输出fa(),返回1值入栈;

                    最后输出123

3,如果想先输出fa(),在输出fb(),fc()。需要设置三个输出流,这样有三个栈。

原文地址:https://www.cnblogs.com/usa007lhy/p/3336038.html