赞
踩
*P++,因为*和++的优先级一样,结合方式都是自右向左,先执行P++使P指向下一个地址,然后再执行*操作,即取P已经增加了1后,指向的地址的数值。
例如:
int a,*p,arr[5]={5,10};
p=arr;
a=*p++;
此时a的值是10;
程序先把arr数组的首地址给了p;p=arr;
然后执行p++操作,此时p指向了arr[1];
再执行取值操纵。此时p=10;
*(P++)和*P++一样的功能。
(*P)++,指的是先取p指向的地址的变量的数值,然后数组再自增1。此句不能单独使用。一般是定义一个变量,把取的值增一后存入变量中。例如
int a,*p,arr[5];
arr[0]=5;
arr[1]=10;
p=arr;(或者:p=arr[0])
a=(*p)++;
此时a的值是6;即,先取arr[0]的值,然后又增1,把此值给a;p此时仍然指向arr[0];
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。