一个很简单的指针传递问题,我突然大脑短路了- -
如有下面代码:
void insert(List *head)
{
......
head=.....;
......
}
void main()
{
......
insert(head);
......
}
主函数中的head其实没有被改变是么。。
[解决办法]
没有 ,可以
void insert(List **head)
{
*head=.
}
[解决办法]
在被调函数中改变实参的值,必须传递实参的地址,无论实参是值变量还是指针变量。
你要修改head的值,就传head的地址,它是指针变量,就传指针变量的地址----so,type *(*head)
type (*head)是head自己的类型,另一个*表示传它的地址
调用函数的表示形式就是function(&head)----传它的地址,无论它是什么