1

我之前在 C 语言课程中没有看到过 void **。

int *dev_c;
dev_c = &val;
printf("%p\n",dev_c);  // val address
printf("%p\n",&dev_c); // get the address of dev_c
printf("%p\n",(void **)&dev_c);

(void **)是类型转换器吗?最后两行输出相同的结果。

4

4 回答 4

2

(void**)是一个演员表。它正在转换&dev_c地址(它具有指向指针的类型指针int),使其成为指向指针的指针void

于 2013-08-07T08:54:08.417 回答
1

void**是指向指针的指针。在您的示例dev_c中是指针,因此 this 的地址&dev_c将是指向指针的指针,并且 this 被类型转换为void**.

于 2013-08-07T08:54:27.183 回答
1

它是一个指向 void 类型指针的指针。该行正在转换对该类型的引用。

于 2013-08-07T08:53:48.923 回答
0

(void **)是一种类型转换,用于指示指向指针的指针。

在您的 printf 示例代码中,它什么也不做。

于 2013-08-07T08:54:35.270 回答