指针

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

posted @ 2020-12-15 09:44  亓柒  阅读(62)  评论(0编辑  收藏  举报