编辑:结构如下......
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());