您的位置:首页 > 其它

PRINTF 与 COUT 区别

2012-07-27 11:51 232 查看
1. PRINTF
与 COUT

转载:http://www.cppblog.com/keroro/articles/167723.html

今天开始搞搞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 的操作顺序不同。

2. C++ primer

cin 和 cout 内置了所有的基本io格式。

printf C标准库里用来输出。

3. 代码例子测试显示 printf 输出 遭遇 cout输出到屏幕设备,这个待疑。
#include "stdafx.h"

#include <iostream.h>

int main(int argc, char* argv[])

{

printf("Hello World!\n");

cout<<"Hello World! Cout 1\n";

#ifdef __cplusplus

printf("now we are using c++\n");

cout<<"C++\n";

#else

printf("now we are using c\n");

//cout<<"C\n";

#endif

cout<<"Hello World! Cout 2\n";

printf("Hello World!\n");

int i=5;

cout<<i<<i++<<i<<endl;

int j=5;

printf("%d,%d,%d\n",j,j++,j);

printf("%d",j);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: