void *p = NULL; int a = 3; (int*)p=a; 有错误吗
时间: 2024-06-02 20:12:08 浏览: 86
有错误
有错误。这段代码应该是 `p = (void*)&a;`。
解释:首先,`p` 是一个指向 `void` 类型的指针,表示它可以指向任意类型的数据。而 `a` 是一个 `int` 类型的变量。如果想让 `p` 指向 `a` 的地址,需要将 `a` 的地址强制转换为 `void` 类型的指针,即 `p = (void*)&a;`。强制类型转换的语法是将要转换的类型放在括号中并放在变量名之前。
在你的代码中,尝试将 `a` 的值转换为指针类型,并将结果存储在 `p` 中,这是不正确的。
阅读全文