当前位置:   article > 正文

*p++和*(p++)以及(*p)++的区别_int a[5],*p=a;*p++和(*p)++

int a[5],*p=a;*p++和(*p)++

*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];

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/79707
推荐阅读
相关标签
  

闽ICP备14008679号