①例子
先定义数组
inta[3]={10,20,30};
即a[0]=10,a[1]=20,a[2]=30。
再令指针p指向数组a首地址,
int*p=a[0];
即*p=10
~
②指针移动(地址移动)
指针的移动=存储空间的移动
~
*p++
表示先++再*,即先移动再取值。
移动即p++=a[0],
取值即*p++=10
++在后表示先原值运算,再加一。
++在后,p++影响p,即p++不变,p变。
p=a[1],*p=20
~
*++p
表示先++再*,即先移动再取值。
移动即++p=a[1],
取值即*++p=20
++在前表示先加一,再运算。
++在前,++p影响p,即++p和p都变。
p=a[1],*p=20
~
③变量加减
变量的加减=原存储空间里的值的加减
~
++*p
表示先*再++,即先取值再变量加减。
取值即*p=*a[0]=a[0]=10
变量加减即++*p=a[0]=10+1=11
即存储空间a[0]里的值本身变成11
++在前表示先加一,再运算。
++在前,++*p影响*p,即++*p和*p都变。
p=a[0],*p=a[0]=10+1=11