*p++、(*p)++、*++p、++*p 的區別


int a[5]={1,2,3,4,5};
int *p = a;

*p++ 先取指針p指向的值(數組第一個元素1), 再將指針p自增1

cout << *p++; // 結果為 1

cout <<(*p++); // 1

(*p)++ 先去指針p指向的值(數組第一個元素1), 再將該值自增1(數組第一個元素變為2
cout << (*p)++; // 1
cout <<((*p)++) //2
*++p 先將指針p自增1(此時指向數組第二個元素), * 操作再取出該值

cout << *++p; // 2
cout <<(*++p) //2

++*p 先取指針p指向的值(數組第一個元素1), 再將該值自增1(數組第一個元素變為2)
cout <<++*p; // 2
cout <<(++*p) //2

注意,上面的每條cout輸出,要單獨輸出才能得到后面的結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM