Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2011, 07:40   #1
goluzov
Форумчанин
 
Регистрация: 26.06.2010
Сообщений: 168
По умолчанию что означает [c - '0'] из c вычесть ноль?

Код:

int c;
int ndigit[10];

if (c >= '0' && c <= '9') ++ndigit[c - '0'];
что означает [c - '0'] из c вычесть ноль? если так то нафига это вобще. можно так [c] и все понятно
goluzov вне форума Ответить с цитированием
Старый 07.12.2011, 08:17   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

тут из c вычитают код символа, который представляет собой цифру 0. Таким образом переводятся цифры из строковой формы в числовую.
Используется то, что в ASCII таблице символы идут в порядке 0 1 2 3 4 5 6 7 8 9.
Соответственно, '9' - '0' = 9, '8' - '0' = 8 и т.д.
почему там c как int, а не char - это уже вопрос, но разницы в принципе никакой в данном случае
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что означает int (*a)[N]; ? ololo-schoolboy Общие вопросы C/C++ 10 06.03.2011 06:22
Что означает serg268 C++ Builder 2 04.03.2011 20:44
Что означает знак ^ RIO Общие вопросы C/C++ 2 20.06.2010 18:21
Что означает строка? Stasmotion Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 17.05.2010 09:42
Что означает? F_A_N_Alex Помощь студентам 1 07.10.2009 22:50