C++运算符优先级表
1
2
3
4
5
6
7
8
9
10
11
12
13
14 1#include <iostream>
2using namespace std;
3int main()
4{
5 double arr[5] = {1.2, 2.3, 3.4, 4.5, 5.6};
6 double *p = arr;
7 cout << *p++ << '\n'; //1.2
8 cout << *p++<<'\n'; //2.3
9 cout << *p << '\n'; //3.4
10 cout << ++*p << '\n'; //4.4
11 cout << *++p << '\n'; //4.5
12}
13
14
*p++先取p++再*,但是p++先使用再++所以输出1.2
++*p先*p再++,*p=3.4 所以输出4.4
*++p先++p再* ,++p 为4.5的指针所以输出4.5
前缀递增、前缀递减和解除引用运算符的优先级相同,以从右到左的方式进行结合。
后缀递增和后缀递减的优先级相同,但比前缀运算符的优先级高,这两个运算符以从左到右的方式进行结合。
注意:指针递增和递减遵循指针算术规则。因此,如果pt执行某个数组的第一个元素,++pt将修改pt,使之指向第二个元素。