你不能在 void 指针上使用指针算法,那么 void 指针数组是如何工作的呢?
You can't use pointer arithmetic on void pointers, so how do arrays of void pointers work?
从阅读教程中,我的理解是,在幕后操作员([](与指针算术相同的事情。
LearnCpp有以下内容说:"事实证明,当编译器看到下标操作员([](时,它实际上将其转化为指针添加和解雇!"。
然后,wikibooks说,这是"称为某种类型的数组的变量作为指向该类型的指针。当自身使用时,它指向数组的第一个元素。"
然后,在阅读了有关虚空指针的信息之后,我很想知道它们的一系列会如何工作?我想我对某事的理解一定是错误的。
对于一个示例,以下两个应相同。
a(
void* array[5];
array[1] = nullptr;
b(
void* array[5];
*(array + 1) = nullptr;
在您的情况下,一个指针数组基本上只是**
-void**
。
您知道void*
的大小,因为它只是另一个指针。
相关文章:
- 引用一个已擦除类型(void*)的指针
- 如何将指针从一个void函数传递到另一个C++
- 指针没有更新它在void函数内部指向的值
- 错误:在为指针赋值时,void值没有被忽略
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- 如何在 C++ 中将 void 函数传递给 void 指针
- 将通用引用强制转换为可调用的 void 指针,反之亦然
- C++为 void 指针分配一个字符串
- 为什么在将 void 指针转换为整数指针时出现分段错误
- 当我使用 void 函数的返回值(通过强制转换函数指针)时,究竟会发生什么?
- 调用向量的函数,给定向量的指针作为 void *
- 取消引用 void 指针以将值分配给结构
- 为什么新表达式可以正确生成指针类型,即使它应该返回 void*?
- C 与 C++,处理 void** 指针
- reinterpret_cast指向 void(*&)() 的成员函数指针
- 使用 void 指针:void **ptr.. 如何修改共享内存的值?
- 我可以将函数指针 void* 强制转换为 std::function 吗?
- void*不是一个指向对象类型的指针 - void **的铸造错误
- 如何使用空指针(void*)
- 指针(void指针)和函数有一点混淆