当我尝试存储字符时,会将其存储为int。有没有办法来解决这个问题?

时间:2018-11-08 22:02:19

标签: c char int

为什么当我尝试存储字符时,将其作为int存储在C语言中 所以我有代码:

char p = (char)'w';

tree_insert(&root,p);

但是它只是传递数字119而不是实际的字母w,但是我需要它传递字母w。

任何帮助都会很棒 这是我对tree_insert的声明,以防您需要:

void tree_insert ( struct Tree_Node**root, char letter );  

1 个答案:

答案 0 :(得分:0)

您如何看待这个价值?如果您使用的是printf,请确保以正确的方式打印出变量,这一点很重要。此代码应打印您的字符:

    printf("%c\n", p);

我怀疑您的打印对帐单上有一个%d,我已将其放置在%c上。发生这种情况的原因是因为C为您的char 'w'以8位存储char:

    0 1 1 1  0 1 1 1
    bin -> dec = 119

当您告诉C将这8位打印为一个字符时,它必须知道如何解释它们。您使用format specifiers来告诉C它到底在看什么。