c-使用指针访问结构内部的结构



我有两个相互连接的结构。这些形成了一个链表。

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语句上执行list->item->text吗?或者我必须执行(*list)吗。(*item).text?或者这根本不可能?

除了第二种形式使用了错误的语法外,您可以随心所欲

list->item->text

和:

(*(*list).item).text

您所拥有的(*list).(*item).text将导致语法错误,因为在.运算符之后必须有一个结构成员。

我可以对if语句执行list->item->text吗?

是的,因为两者都是指针。


回想一下,a->b(*a).b相同。

相关内容

  • 没有找到相关文章

最新更新