关于c++字符优先级的有关问题
关于c++字符优先级的问题c++中后增符++比解引用符号*的优先级要高但是我的c++代码C/C++ code#includeiost
关于c++字符优先级的问题
c++中后增符++比解引用符号*的优先级要高但是我的c++代码
C/C++ code#include<iostream>using namespace std;int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=a; cout<<*p++<<endl<<*(p++)<<endl; return 0;}
的输出结果是2,1请问为何?
[解决办法]调用函数cout的时候,将其参数压入栈的顺序。
[解决办法]据说这个结果是跟编译器相关的,不同的编译器所得出的结果会不一样。我用的是gcc编译器,得出的结果和你一样。之所以会出现这种情况是两个*p++作为右值运算的时候,在标准里面没有规定是先计算左边的还是先计算右边的。不过得出你这种结果的编译器,肯定是优先计算右边的*p++,后计算左边的*p++。平时写的时候注意点就行,尽量不要这样书写了,也用不着深究了。