首页 > 解决方案 > 您不能对 void 指针使用指针运算,那么 void 指针数组如何工作?

问题描述

通过阅读教程,我的理解是,在幕后 operator([]) 与指针算术相同。

Learncpp有以下说法:“事实证明,当编译器看到下标运算符 ([]) 时,它实际上会将其转换为指针添加和取消引用!”。

Wikibooks然后说:“声明为某种类型的数组的变量充当指向该类型的指针。当它自己使用时,它指向数组的第一个元素。”

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

例如,以下两个应该是相同的。

一个)

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

b)

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

标签: c++arraysvoid-pointerspointer-arithmetic

解决方案


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

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


推荐阅读