如何在C中为整数值分配无符号字符*

时间:2012-01-09 12:40:14

标签: c types

我有一个unsigned char *类型,想要为它赋一个整数值。我怎么能在C中做到?

3 个答案:

答案 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;