解释带有C链接列表中的结构的指针

时间:2016-05-17 04:37:30

标签: c pointers struct linked-list

编辑:结构如下......

typedef struct node
{
    student* student;
    struct node* next;

}node;

而且......

typedef struct
{
    int id;
    char* name;
    char* house;
}student;

我试图解释以下代码,涉及指向链表中结构的指针并删除该列表。这就是我如何思考这个问题,而且我知道有些事情是错的。特别是两条线让我很烦恼。首先,node* ptr = first。这应该包含node* first = NULL的地址。由于first已经设置为NULL,因此根据它的使用方式,它似乎也保持NULL。换句话说,node* ptr = first是否ptr同时包含first的地址?我以为这只是地址。同样,node* predptr = ptr是否表示predptr不仅包含地址,还包含ptr指向的所有内容?看起来似乎是因为predptr->student != NULL就像一个结构(不仅仅是一个地址的存储槽),通过它可以访问ptr中保存的数据,尽管在// free list before quitting node* ptr = first; while (ptr != NULL); { node* predptr = ptr; ptr = ptr->next; if (pedptr->student != NULL) { etc 中没有发生明显的解除引用代码段。有人能告诉我我的解释是什么吗?我认为这一切都归结为这些指针是否只携带地址(需要取消引用以访问实际值)或启用对需要显式解除引用的值的访问。任何指导将不胜感激。

    var query = (from results in db.Cars
                 join location in db.Locations on results.dealerName equals location.dealerName 
                 select new {
                   model = results.model, make = results.make, dealerName = results.dealerName, location = location }     
             );
                return json(query.ToList());

0 个答案:

没有答案