指针当参数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 15:56:41
函数的参数中有一个结构体的指针.在函数中使用该指针生成了单链表,那么函数执行结束后这个单链表还存在吗?(我只在函数外生成了一个指针,没有对这个指针进行任何操作)
谢谢~~

单链表当然还存在了,不过初学者容易犯一个错误,就是把结构体指针当参数传给函数,在函数里生成链表,然后函数没有返回头结点指针。然后在函数外,你就会发现,链表没有创建。

这个问题是由于,函数参数传递是值传递,头指针作为参数时,实际上是生成了一个指针的副本,函数中是对副本进行操作,没有改变原指针的值,所以指针仍保持进入函数前的值。

解决的方法就是将参数声明为引用传递,或者不要把指针作为参数而是让函数返回创建的链表的头指针。