优先级:
前置 ++ 和 * 的优先级相同,从右向左进行运算。
后置 ++ 比 * 的优先级高,从左到右进行计算,但是后置++还是需要等到表达式运算结束后才++。
各种++和*
#include <iostream>
using namespace std;
int main()
{
int arrays[]{12,34,32,69,43};
int * p=arrays;
//从右向左进行,先++,再取值,就是34
cout<<"*++p: "<<*++p<<endl;
//从右向左进行,先取值,再++,就是将arrays[1]变成35
cout<<"++*p: "<<++*p<<endl;
//后置++优先级高但是要表达式结束后再++,就是先取值再++
//由于优先级的作用,这里++不是对取值之后的*p,而是对p进行++,指针下移
cout<<"*p++: "<<*p++<<endl;
//和上面的那个式子一样,就是先取值,再++指针下移,
cout<<"*(p++): "<<*(p++)<<endl;
//括号括住的优先级最高,先取值再++,将array[3]变成70,但是输出结果还是69
cout<<"(*p)++: "<<(*p)++<<endl;
cout<<"*p:"<<*p<<endl;
return 0;
}
输出:
*++p: 34
++*p: 35
*p++: 35
*(p++): 32
(*p)++: 69
*p:70