在学习OS的时候遇到了这样一个结构体,
#define LIST_ENTRY(type) struct { struct type *le_next; /* next element */ struct type **le_prev; /* address of previous next element */ }
虽然知道了 struct type **le_prev; 的意义,但是这个双重指针的用法还有点疑惑,所以查了一些资料
内容如下:
char * 和char **
char *定义的式一个字符型指针
char ** 定义的是一个双重指针
双重指针就是指向 指针 的指针
1 int i = 1; 2 char *p1 = &i; 3 char **p2 = &p1; 4 p1 //是 i 的地址 5 p2 // 是p1 的地址 6 *p1 // 取p1 值指向的内容, 就是1 7 *p2 //取p2 值(p1 的地址)指向的内容, 就是 i 的地址 8 **p2 // 取*p2 值(i 的地址)指向的内容, 就是1 9 10 //禁止套娃。。。
原文:https://www.cnblogs.com/NightVoyager/p/12630392.html