一:指针变量的运算
++*p、(*p)++、*p++、*++p四者之间的差别:
首先说一下:运算的优先级:
++和*同优先级,结合方向为自右向左
(1)
++*p,则相当于++(*p),给p指向的变量+1,然后取该变量的值。
通俗一点就是:++在前,先自增(*p)指向的值,值由6变为7,然后取出。
图展示如下:
(二)
(*p)++,则是先取p指向的变量值,然后该变量+1
即:++在后,先取出*p的值,然后再加1.所以取到的值仍未6
但下面再用时*P此值变为7
(三)
*p++相当于*(p++),表示取p所指向变量的值,然后p+1;
即:*(p++)++在后,先取出p所指的值仍为6,p变量加1,指向下一个。
截图如下:
(四)
*++p相当于*(++p),先给p+1,然后取p所指向变量的值
和三比较类似,++在前,所以p的值先加1,然后取出p所指向的值,此时为7