C: не мог понять следующее присваивание массива

Существует некоторая дискуссия об использовании термина "передача ссылкой" в JavaScript здесь , но отвечать на Ваш вопрос:

объект А автоматически передается ссылкой без потребности конкретно указать это

(От упомянутой выше статьи.)

5
задан Midnight Blue 17 August 2009 в 22:40
поделиться

8 ответов

В C вы можете выполнять арифметические операции с символами, используя их коды символов. Таким образом, это гарантирует, что у вас есть цифра, выясняет, что это за цифра (измеряя ее отличие от нуля), а затем увеличивает счетчик в соответствующей позиции в массиве. Когда это будет сделано, ndigit [0] будет содержать количество вхождений '0' , ndigit [1] будет содержать количество вхождений ] '1' и так далее.

12
ответ дан 18 December 2019 в 05:44
поделиться

Символ 0 отличается от числа 0.

В ASCII символ «0» находится в позиции 48 . Стандарт гарантирует, что в кодировке символов числа должны быть последовательными (я не знаю, где в стандарте это сказано). То есть, как 1 следует после 0, так и «1» будет после «0». Поэтому, если вы ввели «0» и хотите получить 0, вычтите из него «0». «1» минус «0» будет иметь разницу в 1. И так далее.

6
ответ дан 18 December 2019 в 05:44
поделиться

Создает гистограмму символов 0-9. «c- '0'» превращает значение из getchar () в целое число, которое действует как индекс для массива. Этот индекс соответствует цифрам 0-9. Затем он увеличивает местоположение этого массива. Таким образом, после завершения работы массив состоит из повторений символов 0-9.

Итак, 0123456789 должен привести к массиву всех единиц. 0123333 должен получиться массив со значениями 1114000000.

8
ответ дан 18 December 2019 в 05:44
поделиться

getchar () вернет код символа для символа как int. Посмотрите на таблицу ASCII, такую ​​как: http://www.cs.utk.edu/~pham/ascii_table.jpg .

Итак, если вы введете '0', c будет 48. Вычитание «0» из входного значения аналогично вычитанию 48, поэтому вы получите значения int 0..9 в целочисленном массиве

1
ответ дан 18 December 2019 в 05:44
поделиться

c - '0' преобразует символ из его кода ASCII в само значение. Это становится индексом массива. Оператор индексации массива имеет более высокий приоритет, чем преинкремент, поэтому значение в массиве в результирующем индексе будет увеличиваться.

1
ответ дан 18 December 2019 в 05:44
поделиться

Часть [c - '0'] создает индекс с отсчетом от нуля для ndigit []. Он делает это, беря c (который имеет значение ASCII в диапазоне от 48 до 57) и вычитает 48 (значение ASCII «0»)

1
ответ дан 18 December 2019 в 05:44
поделиться

Для POSIX и ISO C требуется:

Закодированные значения, связанные с цифры от 0 до 9 должны быть такими, чтобы значение каждого символа после 0 должно быть на единицу больше, чем значение предыдущий символ.

1
ответ дан 18 December 2019 в 05:44
поделиться

Это инкрементный счетчик введенных символов от «0» до «9».

например,

если вы поставили «1» дважды, когда ndigit [1] будет 2, если вы поставите '5' один раз, когда ndigit [5] будет 1,
Если u введите '0' 5000000 раз, когда ndigit [0] будет 5000000 =)

... и т. Д.

0
ответ дан 18 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: