结构体数组怎样放进另一个结构体中

如题所述

在编程中,当我们需要将一个结构体数组嵌入到另一个结构体中时,需要正确地定义类型名和变量名。以你提供的代码为例,vexs作为结构体数组的名字,我们将其定义为类型名,如下所示:

typedef struct {
char mingcheng[18];
char jianjie[MVNum];
} vexs[MVNum];
typedef struct{
vexs aa;
int arcs[MVNum][MVNum];
int vexnum,arcnum;
} AMGraph;

这样定义后,vexs是类型名,而aa是结构体中的一个成员变量,类型为vexs[MVNum],编译器会正确识别并允许这种结构。

如果你希望vexs作为变量名的话,可以这样定义:

typedef struct {
char mingcheng[18];
char jianjie[MVNum];
} VEXS_T[MVNum];
typedef struct{
VEXS_T vexs[MVNum];
int arcs[MVNum][MVNum];
int vexnum,arcnum;
} AMGraph;

这样定义后,VEXS_T是类型名,而vexs是结构体中的一个成员变量,类型为VEXS_T[MVNum]。通过这种方式,你可以更明确地表示vexs是结构体数组的名字。

这两种定义方式在功能上是等效的,但在代码可读性和意图表达上有所不同。选择哪种方式取决于你对代码的偏好和具体需求。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜