不能对 void 指针使用指针运算,那么 void 指针数组是如何工作的呢?

You can't use pointer arithmetic on void pointers, so how do arrays of void pointers work?

根据阅读教程,我的理解是运算符 ([]) 在幕后与指针运算执行相同的操作。

Learncpp有下面的说法"It turns out that when the compiler sees the subscript operator ([]), it actually translates that into a pointer addition and dereference!".

Wikibooks 然后说 "A variable declared as an array of some type acts as a pointer to that type. When used by itself, it points to the first element of the array."

然后在阅读了 void 指针之后,我很想知道它们的数组是如何工作的?我想我的理解一定是错误的。

举个例子,下面两个应该是相同的。

一)

void* array[5];
array[1] = nullptr;

b)

void* array[5];
*(array + 1) = nullptr;

在你的例子中,指针数组基本上就是 ** - void**

你知道 void* 的大小,因为它只是另一个指针。