Status Insert_clientList(clientList* total, clientList* c)
{
clientList ptr = *total;
if ((*c) == NULL)
{
return error;
}
if (ptr == NULL)
{
*total = *c;
}
else
{
while (ptr)
{
if (strcmp(ptr->name, (*c)->name) >= 0) //比较姓名顺序,插入顺序为按客户姓名从小到大排序
{
if (ptr->prior == NULL) //比头结点小,插在头结点之前
{
(*c)->next = ptr;
ptr->prior = *c;
*total = *c;
break;
}
else //插在中间
{
(*c)->prior = ptr->prior;
(*c)->next = ptr;
(*c)->prior->next = *c;
ptr->prior = *c;
break;
}
}
else
{
if (ptr->next == NULL) //比尾结点大,插在尾结点之后
{
ptr->next = *c;
(*c)->prior = ptr;
break;
}
}
ptr = ptr->next;
}
}
return ok;
}
因为*c指的是指针变量c所指向的地址下的值
希望对题主有所帮助,可以的话,帮忙点个采纳!
c表示指针c所指向的地址里面的值,&c表示对c所在的地址进行操作。可以理解为为取值符,&为取地址符
c语言中有指针的概念, 你要理解的是指针是啥,什么概念,与地址有什么关系,怎么去给指针初始化,怎么取地址中的值,这几个逻辑。
定义指针的时候我们可以用类型+ *的方式,比如int * ,cha *。
而对指针的赋值,我们一般用的是变量的地址 比如 int a; int * p = &a;
从上面看,我们可以知道我们定义一个指针,是不是实际和取这个变量的地址是一个意思,(所以我通常就想象说,指针就是地址(指针指向的内容是地址))
而取地址中的值,怎么取呢,我们一般用*对一个地址中的值进行提取,比如 a的地址是&a,那么取这个地址中的a的值可以用*(&a),而指针的概念和这个&a一样,取指针中所指向的地址中的值,是不是就要用*p 来取。。。