在C語言中,二級指針是指向指針的指針。要使用二級指針,首先需要創建一個指針變量,然后將其指向另一個指針變量的地址。這里有一個簡單的例子來說明如何使用二級指針:
#include <stdio.h>
int main() {
int a = 10;
int *p = &a; // 創建一個指向整數的指針p,并讓它指向變量a的地址
int **pp = &p; // 創建一個指向指針的指針pp,并讓它指向指針p的地址
printf("Value of a: %d\n", a);
printf("Value of p: %p\n", (void *)p);
printf("Value of pp: %p\n", (void *)pp);
// 通過二級指針pp訪問指針p所指向的值
printf("Value of *p through pp: %d\n", **pp);
// 修改指針p所指向的值
*p = 20;
printf("Value of a after modifying *p through pp: %d\n", a);
// 修改指針p所指向的地址
p = (int *)0x12345678;
printf("Value of p after modifying its address: %p\n", (void *)p);
// 通過二級指針pp訪問修改后的指針p所指向的值
printf("Value of *p through pp after modifying p's address: %d\n", **pp);
return 0;
}
在這個例子中,我們首先創建了一個整數變量a
,然后創建了一個指向整數的指針p
,并將其指向變量a
的地址。接著,我們創建了一個指向指針的指針pp
,并將其指向指針p
的地址。
我們可以通過二級指針pp
訪問指針p
所指向的值,例如**pp
。我們還可以通過二級指針pp
修改指針p
所指向的值,例如*p = 20
。此外,我們還可以通過二級指針pp
修改指針p
所指向的地址,例如p = (int *)0x12345678
。