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,所以这应该是个未定义行为,所以最好不要这么写!!

posted @ 2022-08-04 21:48  dunhedunhe  阅读(539)  评论(0)    收藏  举报