[英]proper usage of the pre-increment operator in combination with the pointer dereference operator
[英]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.