C語言中*p++ ,(*p)++ ,*++p ,++*p的區別


  1. *p++---先取指針p指向的值(數組第一個元素),再將指針p自增1;
    *號和++(單目運算)兩個處於同一優先級,結合方向是自右向左,但是前提是當++在變量前面的時候才處理同一優先級,當++在變量之后時,++的優先級可以看成最低級的,比逗號運算符的優先級還低。

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

  3. *++p---先將指針p自增1(此時指向數組第二個元素),再取出該值;

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

    #include<stdio.h>
    int Data[2] = {100,200};
    int more[2] = {300,400};
    
    int main(void)
    {
        int *p1,*p2,*p3;
        p1 = p2 = Data;
        p3 = more;
        printf("*p1 = %d,  *p2 = %d,  *p3 = %d\n",*p1,*p2,*p3);
        printf("*p1++ = %d,  *++p2 = %d,  (*p3)++ = %d\n",*p1++,*++p2,(*p3)++);
        printf("*p1 = %d,  *p2 = %d,  *p3 = %d\n",*p1,*p2,*p3);
        
        return 0;
    }
    
    輸出結果如下:
    *p1 = 100,  *p2 = 100,  *p3 = 300
    *p1++ = 100,  *++p2 = 200,  (*p3)++ = 300
    *p1 = 200,  *p2 = 200,  *p3 = 301
    

    注:在數組中,指針自增1代表指針指向下一個元素


免責聲明!

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



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