在很多例子我读过一个简单的getListLength()函数会是这个样子:指针在C函数的参数
int getListLength(struct node *head)
{
struct node *temp = head;
int iCount = 0;
while (temp)
{
++iCount;
temp = temp->next;
}
return iCount;
}
什么令我不需要的是一个本地指针的声明(在这种情况下* temp)复制传递的参数。如果我正确记得,传递的参数获得自己的副本。因此,不需要一个本地指针来复制*头部,因为*头部本身就是一个副本,对吧? 换句话说,放弃* temp指针并在所有地方使用head是否正确?
“代码更长更复杂时”。 - 我可以争辩。如果一个函数比发布的一个函数更长,并且它如此复杂以至于它完成多个任务并且需要记住变量名称,那么该函数应该可能被重构。 – 2013-01-05 21:19:05
这可能是真的,但现实世界很少像人们想象的那样完美。 – jjlin