为什么只定义二维字符串数组会报错,一定要三维?


int luorui(char enemies[50][2], char name[50], char name1[50], int n)
{
    for (int i = 0; i < n; i++) {
        if ((!strcmp(enemies[i][0], name) && !strcmp(enemies[i][1], name1)) || (!strcmp(enemies[i][0], name1) && !strcmp(enemies[i][1], name)))
        {

        }
    }

}

像这样

img


给字符串数组enemies在加一维后就好了,但这是什么原理?

img

  • 二维字符数组,你的写法enemies[i][0] 表示一个字符,你直接使用enemies[i],这表示一个字符串,一个字符数组
  • 你想要 enemies[i][0]表示一个字符数组,只能enemies变成三维了