Я использую Ubuntu 12.04 LTS с gcc. Может ли кто-нибудь сказать мне, как эта переменная символьного типа может содержать более одного байта? ПРИМЕЧАНИЕ. Эта программа будет отображать все символы (более одного), которые вы вводите. Например, если вы наберете «тилип», то это будет отображаться как «тилип». каждый символ содержит 8 бит (один байт), поэтому я набрал 6 символов (6 байт). Затем, как функция getchar может присвоить это значение переменной символьного типа, которая может содержать только один байт?
#include <stdio.h>
int main(void)
{
char ch;
while ((ch = getchar()) != '#')
putchar(ch);
return 0;
}
ch
типаchar
(один байт) может получить выходные значенияgetchar
типаint
? В вашем коде есть неявное приведениеint -> char
. - person Igor Popov   schedule 20.10.2013ch
называется переменной по какой-то причине... вы можете изменить его значение, поэтому со временем он может содержать много разных символов, по одному за раз. - person hyde   schedule 20.10.2013