就是指向指针的指针;这个星号可以很多(目前GCC是可以支持很多);这样就可以一直延续下去,递归找到最终存储的值。但是意义不是太大;两层用的其实也是不少。相反解引用时也要加相同的*号,来找到最原始指向的那个变量。

struct acpi_device_info *info;
status = acpi_get_object_info(handle, &info);
这里&info取到info指针的地址,传递过去。
这个函数的意思,是将一个内存地址放到info变量里。
acpi_status
acpi_get_object_info(acpi_handle handle,
struct acpi_device_info **return_buffer)
{
struct acpi_namespace_node *node;
。。。。。
*return_buffer = info;

[root@10 test]# cat ptop.c
#include
int main()
{
int *p = 0;
int **p_p = &p;
int ***p_p_p = &p_p;
int ****p_p_p_p = &p_p_p;
int ***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************p_p_p_p_p = 0;
int a;
p=&a;
a = 3;
printf("a=%d, &a=%x, p=%x, &p=%x, p_p=%x, &p_p=%x\n", a, &a, p, &p, p_p, &p_p);
printf("a=%d, *p=%d, **p_p=%d\n", a, *p, **p_p);
printf("&p_p=%x\n", &p_p_p_p_p);
return 0;
}
[root@10 test]# ./a.out
a=3, &a=b1614174, p=b1614174, &p=b1614190, p_p=b1614190, &p_p=b1614188
a=3, *p=3, **p_p=3
&p_p=b1614178
static const struct gre_protocol __rcu *gre_proto[GREPROTO_MAX] __read_mostly;
return (cmpxchg((const struct gre_protocol **)&gre_proto[version], NULL, proto) == NULL) ?
