繁体   English   中英

使用指针访问struct内部的struct

[英]Access struct inside struct with pointers

我有2个结构相互关联。 这些形成了一个链表。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM