指针
P++ :和++都是同级运算符,右结合。但++要整个表达式运算完了才运算,先提取P指向对象的值,然后P再做++运算,指向下一个对象。
*(P++) :这个()有点绞水啊,++要整个表达式运算完了才自加,所以同上,提取的还是P指向的对象值,提取后,P就指向下一个对象了。
(*p)++:这个可是不一样啊,人家是先取值,然后值++;
++p:人家是先取值,然后值++;
int a[5]={1,2,3,4,5};
int p = a;
p++ 先取指针p指向的值(数组第一个元素1),再将指针p自增1;
cout << p++; // 结果为 1
cout <<(p++); // 1
(p)++ 先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2
cout << (p)++; // 1
cout <<((p)++) //2
++p 先将指针p自增1(此时指向数组第二个元素), 操作再取出该值
cout << ++p; // 2
cout <<(++p) //2
++p 先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2)
cout <<++p; // 2
cout <<(++*p) //2