Значение оператора C с использованием массивов символов

Я работаю над алгоритмом для проекта, и я наткнулся на некоторый код, который я думаю, может быть полезным. Однако, когда я пытаюсь прочитать код, у меня возникают трудности с пониманием утверждения в коде. Вот код

int firstWord[MAX_WORD_SIZE] = {0}, c = 0;

while (word1[c] != '\0') //word1 is char[] sent as a parameter
{
  firstWord[word1[c]-'a']++;
  c++;
}

Я понимаю (я надеюсь, что правильно), что первая строка устанавливает целочисленный массив моего максимального размера и инициализирует элементы в ноль вместе с обнулением начального значения счетчика "c".

Я понимаю, что цикл while проходит по всем символамword1[] массив, пока он не достигнет финального символа'\0'

Я запутался на линииfirstWord[word1[c]-'a']++; word1[c] должен дать символ, так что же делать-'a' делать? Приводит ли это символ к целому числу, которое позволит вам получить доступ к элементуfirstWord[] массив и приращение с использованием++? Если да, то какой элемент или целоеword1[c]-'a'

Ответы на вопрос(3)

Ваш ответ на вопрос