我有2个结构相互链接。这些形成了一个链表。使用指针访问结构struct struct
typedef struct {
char *text;
int count;
} *Item;
typedef struct node {
Item item;
struct node *next;
} *link;
我正在构建一个查找函数来比较Item结构。
link lookup(link head, Item item){
link list;
for(list = head; list != NULL; list = list->next)
if(strcmp(list->item->text, item->text) == 0)
return list;
return NULL;
}
更具体地说,我可以做的if语句列表 - >用品 - >文本或做我必须做的(*列表)。(*项).text区段?或者这是不可能的?
你正在通过指针引用一个结构体,' - >'运算符是正确的。 (但是,要小心使用'typedef'指针(例如'typedef struct ... * Item'),这可以在代码的其余部分屏蔽间接级别,使乍一看难以确定)。通常''typedef struct ... Item'最好,以便在代码本身中考虑到间接级别。有些人喜欢typedef指针,个人而言,我发现它通常会导致更多的问题,而不是它的价值。 –
除了'(* list)。(* item).text'语法不正确之外,你是对的。相反,你需要写'(*(* list).item).text' –