Когда я пытаюсь сохранить символ, он сохраняет его как int. Есть ли способ это исправить? - PullRequest
0 голосов
/ 09 ноября 2018

Почему, когда я пытаюсь сохранить символ, он сохраняет его как 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 голосов
/ 09 ноября 2018

Как вы смотрите на это значение?Если вы используете printf, важно убедиться, что вы печатаете переменную правильно.Этот код должен напечатать ваш символ:

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

Я подозреваю, что у вашего оператора печати есть %d, где я поместил %c.Причина этого заключается в том, что C хранит символы в 8 битах для вашего символа 'w':

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

Когда вы говорите C печатать эти 8 бит как символ, он должен знать, как их интерпретировать,Вы используете спецификаторы формата , чтобы сказать C, какого черта он смотрит.

...