这种方式叫做“用指针函数*creat()的返回值来传递动态内存”,这是一个C语法
首先你要注意,子函数*creat()用了malloc动态申请内存,而return返回的是链表的首地址,相当于将你所申请的动态内存返回给主函数,所以主函数里的调用方式为head=create();如:
int *fun(void)//这里是指针函数
{
int *p = (int *) malloc (int);//动态申请内存
return p;
}
void main(void)
{
int *q = NULL;
q = fun();//fun()相当于指针p所指向的地址,然后用q指向fun(),即q指向p
}
像这种传递动态内存还可以用二级指针做形参进行传递,如
void fun(int **p)//这里不是指针函数
{
*p = (int *) malloc (int);
}
void main(void)
{
int *q = NULL;
fun(&q);//这里相当于传址,将p的地址传给q,即q指向p
}
求采纳为满意回答。
追问rerurn 语句 关键是在函数后面啊 函数不已经执行完了吗 玩什么还要指回去