C语言指针移动与变量加减

①例子

先定义数组

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




转载请注明:http://www.aierlanlan.com/rzdk/4429.html