C++大小写转化问题 数组循环

请问这个大小写转换代码 中这个 a[i]数组的作用是什么 输入的a又与a[i]怎么对应的 谢谢


#include 
using namespace std;
int main()
{
    char a[20];
    int i = 0;
    cout << "请输入一串字符:";
    cin >> a;
    for (; a[i]; i++)
    {
        if (a[i] >= 'a' && a[i] <= 'z')
            a[i] -= 32;                                                                     
        else if (a[i] >= 'A' && a[i] <= 'Z')
            a[i] += 32;
    }
    for (i = 0; a[i]; i++)
        cout << a[i];
    cout << endl;

    
    return 0;
}

就是记录字符串啊。cin>>a就是直接输入一个字符串,存储到a数组。后面的代码就是循环检查a数组中的每个字符进行大小写转换后再输出啊