如果我需要将某些内容视为unsigned char
数组,这是函数的正确方法:
int main() {
int i = 500;
f(&i);
}
void f(void *ptr) {
unsigned char *byteptr = static_cast<unsigned char *>(ptr);
...
}
如果我没有功能怎么办?我应该使用两个static_cast
,首先使用void *
然后再使用unsigned char *
吗?
答案 0 :(得分:2)
要将指向int
变量的指针转换为与unsigned char
无关的类型,您需要使用reinterpret_cast
:
unsigned char *byteptr = reinterpret_cast<unsigned char *>(&i);
但我回应了评论者的问题:你究竟想做什么?似乎不太可能将int *
转换为unsigned char *
这样的任何有用的东西。