cout流的计算顺序和输出顺序
cout的计算顺序从右向左,输出顺序从左向右
假设a = 1; b = 2; c = 3;
cout<<a<<b<<c<<endl;
缓冲区:|3|2|1|<- (把“<-”看作是指针)
输出: |3|2|<- (输出 1)
|3|<- (输出 2)
|<- (输出 3)
结果就是123.
C++输出流cout的执行顺序问题
(24条消息) C++输出流cout的执行顺序问题_知之可否的博客-CSDN博客_cout执行顺序
实例:
int num = 0;
cout<<num<<num++<<num++;
//从右往左计算,从左往右输出
//210
不过在有的编译器上(clang和gcc12)可以输出0 0,而VS和gcc4.9以前的版本输出1 0,所以这应该是个未定义行为,所以最好不要这么写!!

浙公网安备 33010602011771号