2014-10-06 3 views
-4
char c; 
c = '2'; 
printf("%d\n",c); 

Так что этот вопрос из моей викторины, он спрашивает, что такое дисплей. Ответ 50, я пытался использовать программу, но почему это 50? не 2 или что-нибудь еще?Apostrophe in char тип данных

+1

Кажется, ваша система (как и большинство систем сегодня) использует [набор символов ASCII] (http://www.ascii-code.com/). Если вы проверите ссылку, вы можете понять, почему «2» == 50'. –

+2

Кроме того, попробуйте придумать лучшие заголовки для своих вопросов в будущем. Вопрос не имеет ничего общего с апострофами. –

ответ

4

апострофы означают «литеру», т.е. '2' не целое число 2, но вместо того, чтобы символ 2, т.е. глиф используется для представления одной цифры 2.

вы печатаете это значение, используя %d в printf(), что означает «целое число», так что вы получите целое значение символа, который часто называют «точкой коды» (или, классический , это «значение ASCII»).

Я думаю, что ваш код не 100% чистый, так как char может быть unsigned, вы должны бросить в (int) в вызове, чтобы быть ясно, так это то, что int%d ожидает.

3

Вы печатаете char '2', как int '%d', так то, что печатается, является его ASCII value