What is the purpose of using the -i and -1 in the following: array[name.Length - i] = name[i - 1]; : <p>array[name.Length - i] = name[i - 1];</p>

<p>In the piece of code above, I understand that the purpose of it is is taking each letter of the name array and placing it into the array named array. What I am not sure about is the logical explanation as to what exactly the -i and the -1 is doing. Is this just syntax I have to memorize?</p>

<p>Thus far, I understand that the left side of the assignment state is indicating where the letters are going ( 1 letter a at time) while the right side is indicating where the letters are coming from (1 letter at a time). However, the reason for the structure is still not clear to me.</p>

<p>The purpose of the code is to ask the user to enter their name. Use an array to reverse the name and then store the result in a new string. 
        /// Display the reversed name on the console.</p>

<pre><code>    {
        Console.Write("What's your name? ");
        var name = Console.ReadLine();

        var array = new char[name.Length];
        for (var i = name.Length; i &gt; 0; i--)
            array[name.Length - i] = name[i - 1];

        var reversed = new string(array);
        Console.WriteLine("Reversed name: " + reversed);
    }
</code></pre>
