char c;
c = '2';
printf("%d\n",c);
Так что этот вопрос из моей викторины, он спрашивает, что такое дисплей. Ответ 50, я пытался использовать программу, но почему это 50? не 2 или что-нибудь еще?Apostrophe in char тип данных
char c;
c = '2';
printf("%d\n",c);
Так что этот вопрос из моей викторины, он спрашивает, что такое дисплей. Ответ 50, я пытался использовать программу, но почему это 50? не 2 или что-нибудь еще?Apostrophe in char тип данных
апострофы означают «литеру», т.е. '2'
не целое число 2, но вместо того, чтобы символ 2, т.е. глиф используется для представления одной цифры 2.
вы печатаете это значение, используя %d
в printf()
, что означает «целое число», так что вы получите целое значение символа, который часто называют «точкой коды» (или, классический , это «значение ASCII»).
Я думаю, что ваш код не 100% чистый, так как char
может быть unsigned
, вы должны бросить в (int)
в вызове, чтобы быть ясно, так это то, что int
%d
ожидает.
Вы печатаете char '2'
, как int '%d'
, так то, что печатается, является его ASCII value
Кажется, ваша система (как и большинство систем сегодня) использует [набор символов ASCII] (http://www.ascii-code.com/). Если вы проверите ссылку, вы можете понять, почему «2» == 50'. –
Кроме того, попробуйте придумать лучшие заголовки для своих вопросов в будущем. Вопрос не имеет ничего общего с апострофами. –