void * v []; v [i] = v [j];为什么这是正确的?

问题描述:

A void*是一个指向任何东西的指针,即它只是一个地址!怎么能解除它?但是在这本书的C语言编程语言(第二版)第121页中,swap函数似乎是这样做的。void * v []; v [i] = v [j];为什么这是正确的?

+1

什么?请重新提出您的问题,这绝对没有意义! – Praetorian

+1

有趣的问题,但你应该找人帮助你用清晰的英文写出来。 – Joe

+0

@Joe我的英语很差,我不知道如何 – ytyisme

void *v[]是指针的数组。因此,v[i] = v[j];将位于索引j的元素分配给位置i,其不涉及解引用指针而仅仅复制指针(地址)。

+0

你能编辑我的问题变得更清楚吗? – ytyisme

+0

'v [0]'类型为'void *',而不是'void'类型。 –

+0

@PerJohansson哦,也许,明白了吧 – ytyisme

您需要将指针转换为所需的类型。例如,void * x; (int *)x - 突然它是一个指向int的指针。

+0

我知道,谢谢 – ytyisme