#include <iostream>
using namespace std;
int f1(){ cout << 1; return 1; }
int f2(){ cout << 2; return 2; }
int f3(){ cout << 3; return 3; }
void f(int, int, int){}
int main()
{
f(f1(), f2(), f3());
}
// 打印结果为:321
#include <iostream>
int main()
{
int a = 1;
std::cout << a++ << ++a << a;
}
// 如果按照从右到左顺序,应当打印221,打印结束后a为3
// 但实际打印结果为:233
- 实际上,入栈前会先把参数列表中的表达式计算出结果再入栈。后自增时,编译器会开辟一个缓冲区来保存当前值再自增,取值时从缓冲区取
#include <iostream>
int main()
{
int a = 1;
std::cout << a++ << ++a << a << a++;
}
// 打印结果为:3441
// 最后的a在寄存器中保存1,第一个a在寄存器中保存3
网友评论