关于解除引用运算符的优先级¶
note that ++ 的优先级比 解除引用运算符 * 要强,但是 ++ 运算符必须等上一操作结束了才会执行
int * ptr = new int[8]{ 1,3,5,7,9,11,13,15 };
int a = *ptr++; //a=1,ptr->3
cout << a << endl << *ptr++ << endl; //ptr->5
int b = *(ptr++); //b=5,ptr->7
cout << b << endl << *(ptr++) << endl; //ptr->9
int c = *ptr + 1; //c=10,ptr->9
cout << c << endl << *ptr + 1 << endl; //ptr->9
int d = *(ptr + 1); //d=11,ptr->9
cout << d << endl << *(ptr + 1) << endl;
// output: 1 3 5 7 10 10 11 11
总结,i++ 的优先级很高,但是必须保证在上一操作结束后执行这一点上有无括号并不影响,若是使用 ++i 结果又不一样。