c++ - 您不能对 void 指针使用指针运算,那么 void 指针数组如何工作?
问题描述
通过阅读教程,我的理解是,在幕后 operator([]) 与指针算术相同。
Learncpp有以下说法:“事实证明,当编译器看到下标运算符 ([]) 时,它实际上会将其转换为指针添加和取消引用!”。
Wikibooks然后说:“声明为某种类型的数组的变量充当指向该类型的指针。当它自己使用时,它指向数组的第一个元素。”
然后在阅读了 void 指针之后,我很想知道它们的数组是如何工作的?我想我对某事的理解一定是错误的。
例如,以下两个应该是相同的。
一个)
void* array[5];
array[1] = nullptr;
b)
void* array[5];
*(array + 1) = nullptr;
解决方案
指针数组基本上只是**
-void**
在您的情况下。
你知道它的大小,void*
因为它只是另一个指针。
推荐阅读
- bash - 优雅地克隆一个 git org 完整仓库
- ruby-on-rails - Rails:收藏产品并使用 ajax 作为收藏/取消收藏按钮
- php - 尝试对 wordpress 插件使用作曲家自动加载时“找不到类”
- xml - 使用 XSLT 1.0 对输出进行分组
- asp.net - 转换为 N 层架构
- unit-testing - VS2017 - 添加测试项目后解决方案响应非常慢(x-unit)
- javascript - openlayers 中的 Javascript 导入
- cplex - CPLEX 中的线性优化
- javascript - 从 ui bootstrap modal 控制器调用函数
- phpmailer - 我正在发送带有图像的电子邮件。我只有二进制代码。有没有办法将它发送到电子邮件正文?