【发布时间】:2017-06-05 11:16:05
【问题描述】:
我目前正在学习 C,我刚刚编写了一个程序草稿,该程序允许用户在基于角色的迷宫/路径中移动玩家。我已经将迷宫/路径构建为多维字符数组,其中一个 while 循环通过替换数组中的某些字符来控制玩家的位置。这是我初始化的多维数组:
char maze[5][7] = {
{"_", "_", "_", "_", "_"},
{"|", " ", " ", " ", "|"},
{"|", " ", "|", " ", "|"},
{"|", " ", "|", "_", "|"},
{"|", "_", " ", " ", "|"},
{"|", " ", "|", " ", "|"},
{"|", "_", "_", "_", "|"}
};
但是,当我尝试编译时,我得到了这个错误:
error: '}' expected
数组中的第一行显然缺少某种右括号,尽管我已多次检查正确的数组语法,这似乎是正确的。我错过了什么?还有其他问题吗?
【问题讨论】:
-
"|"是具有字符数组类型的字符串文字。 '|'是具有 char 类型的字符文字。您需要使用字符文字来初始化数组而不是字符串文字。并且该数组应声明为 char maze[7][5] 即它有 7 个“行”和 5 个“列”
-
首先你弄错了尺寸。然后你有一个由 characters 组成的数组,而不是字符串。最后,C没有“多维数组”,它只有数组的数组(数组......)。
-
C 数组是 row major。因此,您的初始化程序的大小和类型都错误。
-
你的问题解决了吗
标签: c arrays multidimensional-array