你不能在 void 指针上使用指针算法,那么 void 指针数组是如何工作的呢?

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

本文关键字:指针 void 工作 何工作 那么 不能 算法 数组      更新时间:2023-10-16

从阅读教程中,我的理解是,在幕后操作员([](与指针算术相同的事情。

LearnCpp有以下内容说:"事实证明,当编译器看到下标操作员([](时,它实际上将其转化为指针添加和解雇!"。

然后,

wikibooks说,这是"称为某种类型的数组的变量作为指向该类型的指针。当自身使用时,它指向数组的第一个元素。"

然后,在阅读了有关虚空指针的信息之后,我很想知道它们的一系列会如何工作?我想我对某事的理解一定是错误的。

对于一个示例,以下两个应相同。

a(

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

b(

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

在您的情况下,一个指针数组基本上只是** -void**

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