在C语言中是否有一种方法可以定义二维数组的类型?类似于:
typedef char[10][10] board;
这个例子无法编译。有没有什么方法可以解决?还是有其他的解决方案?
在C语言中是否有一种方法可以定义二维数组的类型?类似于:
typedef char[10][10] board;
这个例子无法编译。有没有什么方法可以解决?还是有其他的解决方案?
尝试这个:
typedef char board[10][10];
然后您可以将新数组定义为:
board double_array = {"hello", "world"};
这与以下情况相同:
char double_array[10][10] = {"hello", "world"};
typedef
,如何创建该类型的变量?”如果是这样,答案是board b;
会创建一个类型为board
的变量b
,它与char b[10][10];
完全等价(因为typedef
引入了一种类型的替代名称,而不是新类型)。 - Jonathan Leffler类型定义语句
类型定义语句用于使用现有的其他数据类型来定义用户自定义数据类型。
基本格式:
typedef existing_data_type new_user_defined_data_type;
所以,你的应该是:
typedef char board[10][10];
你可以像Yu Hao所说的那样使用它,或者你也可以使用char指针来定义一个2D数组,如下所示:
typedef char *board[10];
然后您可以按照YU Hao所描述的方式操作。这样,您就不需要硬编码要在字符串中使用的字符数。
board
的二维数组变量?答案是:char board[10][10];
。如果要创建一个类型定义board
而不是一个变量,则使用“存储类”typedef
:typedef char board[10][10];
。然后,您可以使用以下代码创建3个棋盘:board b1, b2, b3;
。您还可以创建一个棋盘数组:board ab[10];
。 - Jonathan Leffler