我有一个unsigned char *类型,想要为它赋一个整数值。我怎么能在C中做到?
答案 0 :(得分:4)
只需要做适当的演员:
unsigned char *pointer = (unsigned char *) 0xdeadf00d;
这完全符合您的要求,它为指向unsigned char
的指针赋予整数值。这不是一个非常有用的事情,但你就是这样做的。
当然没有要求(我知道)这甚至是可能的;你的架构对指针的想法可能不支持这种情况,在这种情况下我想编译器会告诉你。
答案 1 :(得分:0)
#include <stdio.h>
int main()
{
unsigned char *ucrp,*ucr2p;
unsigned char ucr2='X';
int Integr_val=320;
ucr2p=&ucr2 ;
ucrp=(unsigned char *)&Integr_val;
*ucr2p= Integr_val;
return printf("\n %c,%i\n %c,%i",*ucrp,*ucrp,*ucr2p,*ucr2p);
}
通过这个例子,您基本上可以理解您正在执行的损失。没有显式类型转换的char可以转换整数值。
输出: -
@,64
@,64
答案 2 :(得分:-2)
unsigned char* a;
int b = 1;
( *a ) = ( unsigned char ) b;