C语言 *p++和*++p的区别


  

int a[2]={1,2}; p=a; p++; *p;

    上式指针p先自增,再赋值给p,即p在'p++;'语句执行完后p+1;*p取的值即为a[1];

  *p++和*++p的区别:

    *p++由于*和++优先级同级,满足右结合性,从右至左。p先取值,因为此时语句还没执行完,p未被赋值,故*p++所取的值为a[0],*p++等同于*(p++);

    *++p则等同于p++; *p; *++p结果是a[1]。

  *(p++)和(*p)++的区别:

    *(p++)等同于*p++。(*p)++;在当前语句中*p=a[0],当语句执行完时,*p=a[1]。 ++*p=++(*p)=a[0]+1。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM