关于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]|
我在想这样为什么不可以转换呢,

3个回答

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不行吗?

kalizccm
kalizccm 回复weixin_43113933: unsigned无符号
3 个月之前 回复
weixin_43113933
weixin_43113933 我只是想知道这样错的原因,char*不可以转unsigned char *么
3 个月之前 回复

当然不能直接转了,一般都是unsigned char*p=(unsigned char*)(void*)a

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问