例如:
char mem[100000];
int reg[8];
mem[36] = 'p'; // add char p to our 36th index of our char array
reg[3] = (int)mem[36]; // store value of mem[36] into reg[3]
-
现在我想在该int数组的索引3处打印char值 .
-
到目前为止,我的思考过程引导我进行如下代码:
char * c =(char *)reg [3];
cout << * c << endl;
但是当我试图将它打印出来时,我仍然会得到奇怪的值和字符 .
根据我的理解,整数等于4个字符 . 由于字符在技术上是一个字节而整数是4个字节 .
所以我将一个字符存储到我的整数数组中作为4个字节,但是当我将其拉出时,存在垃圾数据,因为我插入的字符只有一个字节,而索引的大小是4个字节 .
3 回答
你试过这个:
这打印出值'p'
你不应该't be using pointers here; it'足以使用
char
:但请注意,在尝试将
int
填充到char
变量时,您可能会丢失信息 .我不明白你的问题是什么 . 将char存储到int var中 . 您想要将其打印回来 - 只需将值转换为char并打印它