指针细节整理

2017年12月16日15:49:06
1.
p++;
*p;
p++使p指向下一个元素a[1].然后执行*p,则是a[1]的值

2.
*p++;
++和* 的优先级是一样的
也就是先引用p的值,然后在增加

3.
(若p的初始值为&a[0])
*(p++)和*(++p)作用不一样。
*(p++):先取出*p的值,然后使p+1 ==>a[0]==>线引用后增加
*(++p): 先p+1,然后取出*p的值 ====>a[1]==>先增加,后引用。

4.
++(*p)
表示p所指向的元素值加1,
eg:p = a
则++(*p)相当于++a[0],若a[0]=3,则执行完后a[0]=4
注意:是a[0]元素的值加一,而不是指针p加1.

5.
如果p当前指向a数组中第i个元素a[i]则:
*(p--)===>a[i--]先运算*,再运算--
*(++p)===>a[++i]先运算++,后运算 
*(--p)===>a[--i]先运算--,后运算

原文地址:https://www.cnblogs.com/healy/p/8047432.html