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