关于cout计算顺序,从右到左计算顺序。

 1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6 const int a[] = {10,20,30};
7 const int *p = a;
8 cout<<"*p:"<<*p<<endl;
9 cout<<"*p:"<<*p<<"\t*p++:"<<*p++<<"\t*p"<<*p<<endl;
10 return 0;
11 }
12
13 /*输出为:
14 *p:10
15 *p:20 *p++:10 *p:10
    */

从上边的例子中可以看出来cout的计算顺序是从右向左 ,首先解引用*p 得到第一个元素10,然后在第二个输出语句中从右向左,首先解引用得到10,然后计算*p++,关于*p++ 的计算可以参考:比如i = 3; cout<<i++<<endl;同样输出3,因为首先输出i,然后才改变i的值。输出时,首先输出*p 也是10,但是这个式子计算后*p就变成了第二个元素了20,即第一个*p是20,后边的输出为10.

原文地址:https://www.cnblogs.com/newpanderking/p/2416465.html