最近回答关于递增和递减运算符的问题时,发现一个有趣的小问题

看下面代码,有区别吗?

int a = 1;
cout << a++ << ++a;
int a = 1;
cout << a++;
cout << ++a;

如果单看结果的话,我们是否会觉得两段代码并无二致 ?

不妨看看结果如何

·1

 ·2

 结果相当吃惊,看似相同的代码实则有着截然不同的效果!

对于第一段代码,程序会优先执行++a,再执行a++!而对第二段代码则恰恰相反!