C++ 指针初始化 void * p = 0X8000000001;

来源:百度知道 编辑:UC知道 时间:2024/05/27 19:54:01
void * p = 0X8000000001; 为什么编译器说这里有问题 问题出在哪?请说明!
照你这么说 char * p = 0X8000000001; 是不是就没问题了 告诉你结果还是有问题的
我只是想给指针初始化一个地址让他指向0X8000000001 这个地址单元!

0x800000001是个数,当然不能直接赋给指针,要加上(void *)做强制转换.
而且指针的值只有32位,0x8000000001太大了.
正确的写法是
void *p=(void *)0x80000001

void 的是无类型 没有你还赋值 值是十六进制数 当然是有类型的 所以你把以个有类型的东西赋值给一个以个无类型的变量 当然出错