簡體   English   中英

使用預增量運算符的指針取消引用的指針

[英]Pointer to pointer dereference with pre-increment operator

以下程序的輸出為17,29,45; 我不明白**++pp;是什么**++pp; 意思。 任何人都可以詳細解釋該程序。

    #include <stdio.h>

    int main() {
        static int a[] = {10, 22, 17, 29, 45};
        static int *p[] = {a, a + 2, a + 1, a + 4, a + 3};
        int **pp = p;
        **++pp;
        printf("%d %d %d", **pp, *pp[3], pp[0][2]);
    }

在您的代碼中, **++pp; * (* ( ++pp)); 它首先使指針遞增,然后進行兩次引用第一個取消引用的結果是指針類型,要詳細說明 )。

但是,不使用通過解引用獲得的值。 如果啟用了編譯器警告,您將看到類似

警告:未使用計算值

您可以刪除取消引用,這是沒有用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM