关于C语言的指针类型转换问题?
问题描述:
#include
int main()
{
unsigned int a = 0;
unsigned char p = (char *)&a;//有错
p[0] = 123;
p[1] = 111;
p[2] = 168;
p[3] = 192;
printf("%u\n", a);
return 0;
}
结果报错:error: invalid conversion from 'char' to 'unsigned char*' [-fpermissive]|
我在想这样为什么不可以转换呢,
答
当然不能直接转了,一般都是unsigned char*p=(unsigned char*)(void*)a
答
unsigned int a = 0;
unsigned char *p = (unsigned char*)& a;//有错
p[0] = 123;
p[1] = 111;
p[2] = 168;
p[3] = 192;
printf("%u\n", a);
return 0;
答
直接char不行吗?