分类: C/C++
2009-07-09 10:34:24
代码1:
代码2:
代码1输出:
代码2输出:
分析:
cout的输出是先从右往左读入缓冲区,再从左往右输出;
假设a = 1; b = 2; c = 3;
cout<缓冲区:|3|2|1|<- (把“<-”看作是指针)
输出: |3|2|<- (输出 1)
|3|<- (输出 2)
<- (输出 3)
代码2中每个(*it++)都会自增1,如下:
cout << "----"<< (*it++) << "````" <<(*it++)<< "++++" 缓冲区:|****|a|++++|b|````|c|----|<- 当执行第一个(*it++)时,其指向a,执行完后指向b, 当执行第二个(*it++)时,其指向b,执行完后指向c,这样缓冲区内就一次存储a、b、c 输出:|****|a|++++|b|````|c|<- 输出---- |****|a|++++|b|````|<- 输出c |****|a|++++|b|<- 输出```` ...........
<< (*it++) << "****" <