Другие уже объяснили, почему это работает, но отмечают, что использование переменных типа char для индексов является плохой практикой, поскольку они имеют различную связанную семантику и, следовательно, использование char в качестве индекса непонятно.
Используйте символы только для хранения символьных данных и, возможно, лучше: старайтесь вообще избегать символов, поскольку они даже недостаточно широки, чтобы хранить каждый символ (см. Обсуждение Unicode и кода). Вместо этого используйте int для хранения кодовых точек.