数据结构,数组求配对

是关于字符数组的一段代码
主要关注main函数和Judge函数的传递形参之间的递接

在主函数我赋值了一个字符char的数组,企图传递给Judge函数进行配对功能的实现

#include
#include
#define MaxSize 50
int Judge(char A[]) {
    int i = 0;
    int j = 0 , k = 0;
    while (A[i] != '\0') {
        switch (A[i]) {
        case'I':j++; break;
        case'O':k++;
            if (k > j) {
                printf("fasle\n"); exit(0);
            }
        }
        i++;
    }
    if (j != k) {
        printf("false\n");
        return false;
    }
    else {
        printf("true");
        return true;
    }
}
int main() {
    char A[MaxSize] = { 'I','O','I','O','I','O' };
    for (int i = 0; i < 6; i++) {
        printf("%c", A[i]);
    }
    Judge(A[MaxSize]);
 }

但是在代码书写的过程中提示main中的数组是char类型的,但传递后变成char*,有没有兄弟解答一下

Judge(A[MaxSize]);
改为
Judge(A);
定义的时候 int A[MAXSIZE];代表数组,但使用的时候A[MAXSIZE]代表A数组的第MAXSIZE个元素。

c语言数组作为参数传参就是通过指针来实现的,通过传递数组的首地址来传递数组,当使用数组元素时编译器根据数组类型来查找首地址后地址存放的元素