【发布时间】:2015-06-28 01:55:29
【问题描述】:
所以,一个 void 指针是一个通用指针,它可以在以后指向任何字符或整数,对吧?但它是一个指针。但是,这编译没有任何错误:
void* ptr;
long var;
ptr = (void*)var;
为什么可以在这里将long 类型转换为指针?它不应该给出错误吗?请注意,如果var 是int 或char,这也有效。
此外,如果 var 是 long,则以下 sn-p 有效!
cout<<(long)ptr;
但是,如果 var 是 int 或 char,这将不起作用。我不知道该怎么做。我使用的是 64 位 Linux 机器。
【问题讨论】:
-
它不适用于 64 位平台。看我的回答。
标签: c++ pointers void void-pointers