Цикл начинается с i
, равного длине name
, и вычитает 1 из i
в каждой итерации.
Таким образом, в первой итерации name.Length - i
равно 0, а i-1
равно name.Length -1
.
На следующей итерации name.Length - i
равно 1, а i-1
равно name.Length -2
и т. Д.
Присваивая символ в name[x]
значению array[y]
, цикл копирует каждый символ из массива name
в массив array
- поэтому к моменту окончания цикла массив array
становится точно обратная копия массива name
.
Я собрал небольшую демонстрацию на rextester , чтобы вы могли видеть, как она работает.
Обратите внимание, что это не лучший способ перевернуть строку, особенно на неанглийском языке.
Некоторые языки используют буквы, состоящие из более чем одного символа, например, акценты на французском языке, которые используют Ç, é, â, ê, î, ô, û, à, è, ù, ë, ï and ü.
Для этих языков простое изменение символа на символ приведет к появлению строки, в которой ударение находится на неправильной букве. Чтобы найти правильную обратную строку, прочтите ответ Р. Мартиньо Фернандеса на этого SO сообщения .