恃才傲物反义词:请教一个和VC++的问题
来源:百度文库 编辑:高校问答 时间:2024/04/27 18:12:45
int a=0;
cout<<a<<a++<<a<<++a<<a<<endl;
这条语句是怎么执行的,我希望知道VC6.0编译器是怎样留处理它,即使涉及汇编也无妨。希望你们能真正地在C++上编译运行,不要只是想像。
cout<<a<<a++<<a<<++a<<a<<endl;
这条语句是怎么执行的,我希望知道VC6.0编译器是怎样留处理它,即使涉及汇编也无妨。希望你们能真正地在C++上编译运行,不要只是想像。
cout和printf一样,输出参数是从右往左顺序压栈(即先运算最右边的表达式),输出时从栈顶取数据输出
cout<<a<<a++<<a<<++a<<a<<endl;
执行序列为
push endl
push a //a=0
inc a //++a
push a //a=1
push a //a=1
push a //a=1
inc a //a++
push a //a=2
输出时为
pop 2
pop 1
pop 1
pop 1
pop 0
所以输出结果为 “21110”
加一个主函数就可以~
main()
下面的是你要执行文件的 要求!
输出
0 0 1 2 2
其中的空格是我加的