Значение оператора 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'