16

有没有办法在 C 中 typedef 一个二维数组?就像是:

typedef char[10][10] board;

此示例无法编译。有什么办法吗?或者任何其他解决方案?

4

2 回答 2

20

试试这个:

typedef char board[10][10];

然后你可以这样定义新数组:

board double_array = {"hello", "world"}; 

与以下内容相同:

char double_array[10][10] = {"hello", "world"};
于 2013-07-21T09:51:07.900 回答
5

类型定义语句

类型定义语句用于允许使用其他已经可用的数据类型来定义用户定义的数据类型。

基本格式:

typedef existing_data_type new_user_defined_data_type;

所以,你的应该是:

typedef char board[10][10];

您可以像余浩所说的那样使用它,或者您也可以将它与 char 指针一起使用来定义这样的二维数组:

typedef char *board[10];

然后你就可以按照于浩的描述去做了。通过这种方式,您无需对要用于字符串的字符数进行硬编码。

于 2013-07-21T09:53:33.990 回答