我在C.做了一个项目。我是C的新手。在项目中,我有一个这样的结构:
struct room_t{
char* name;
struct room_t* north;
struct room_t* east;
struct room_t* south;
struct room_t* west;
}
声明为:struct room_t room[3]
如果我想在北方访问该名称,请执行以下操作:room[0].north[0]->name
我是对的吗?或应该是room[0].north[0].name
答案 0 :(得分:6)
您的第一个猜测几乎是正确的,但它应该是room[0].north->name
,因为您没有为变量north
声明数组。
一般情况下,您应该尝试一下,然后看看编译器和您的程序输出的内容尽可能多地自学。 ;)
答案 1 :(得分:4)
应该是 room [0] .north-> name,如果你在北方分配单个元素 但是如果你将一个数组(多个元素)分配到北方,你应该访问room [0] .north [n] .name,其中n = 0到(分配的元素数) - 1