Я нашел этот примерный код при использовании массивов на языке C.Массивы K & R 1.6 // Представление цифр в конструкции массива
#include <stdio.h>
main() {
int c, i;
int ndigit[10];
for (i = 0; i < 10; ++i)
ndigit[i]=0;
while ((c = getchar()) != EOF)
if (c >= '0' && c <= '9')
++ndigit[c - '0'];
printf("digits =");
for (i = 0; i < 10; ++i)
printf(" %d", ndigit[i]);
}
Я никогда не видел массивы раньше, но я думаю, что получил. Тем не менее, я не уверен, почему значения цифр должны быть вставлены в '..'
или почему назначение i
должно быть выражено как c-'0'
.
Это отрывок из книги, которая должна прояснить мои сомнения:
Эта particolar программа опирается на свойства символьного представления цифр. Например, текст
if (c >= '0' && c <= '9')
определяет, являются ли символы вc
цифрой. Если это так, числовое значение, если эта цифра равнаc - '0'
.
Я не понимаю, как эти значения могут использоваться в арифметических выражениях, если они являются символами, потому что они отображаются на числовые значения?
Тогда почему вся программа просто не будет работать, если они записаны в виде чисел, как и в if (c >= 0 && c <= 9)
, ни она работает, если c
не написано таким образом (который к моему пониманию это просто «любой номер c
минус 0) .
возможно дубликат [Что реальное применение с использованием п \ [C-'0' \]?] (Http://stackoverflow.com/ Вопросы/7403741/whats-the-real-use-of-use-nc-0) – usr2564301