先看下面的代码,看看输出的值是多少?
int j = 0 ;
qDebug ()<< j ++;
qDebug ()<< ++ j ;
qDebug ()<< j ++ << j ;
qDebug ()<< ++ j << j ;
qDebug ()<< j << ++ j ;
qDebug ()<< j << j ++;
j = 0 ;
qDebug ()<< j ++;
qDebug ()<< ++ j ;
qDebug ()<< j ++ << j << j ++ << ++ j ;
qDebug ()<< j ++ << j << j ++ << j ;
编译执行后的结果为:
0
2
2 3
4 4
5 5
6 5
0
2
4 5 3 5
6 7 5 7
可以看到有些结果跟我们想的不一样,在查阅资料后,大致的有了以下的一些思路:
在打印输出的过程中
1. 先执行运算,再进行取值。
2. 先从右向左遍历以便参数,再执行打印操作。
3. ++Ĵ,先取参数,再++,再遍历。
4. j++,先遍历,再++。