之前学二位数组的时候就在想,有没有可能弄一种没有钦定类型的指针,这样的话自由度大大的提高,说不定可以玩出新花样
然后就有了,看一下代码:
#include <stdio.h>
int main(void)
{
int var = 65535;
void *ptr = &var;
printf("%d\n",*(int*)ptr);
return 0;
}
我们在上述代码中声明了一个var
变量,赋值为65535
,并且声明了一个指向var
的void
类型指针ptr
。
void
类型指针的自由度极高,在printf
语句中,我们需要强制将其转为int*
类型的指针才能让编译通过,这是因为如果我们不指明指针类型,printf函数就无法知道变量的类型,进而导致程序不可能正确执行。