我只是有一个疑问。以下子例程(例如,在列表中搜索元素)的末尾具有return语句:
list *search_list(list *l, item_type x) {
if (l == NULL) return(NULL);
if (l->item == x)
return(l);
else
return( search_list(l->next, x) );
}
我无法在最后获得return语句的意义(即return search_list(l-> next,x))。如果有人可以使用堆栈模型来解释这个概念,那将非常有帮助。
return
。实际上,在函数式语言(和某些混合语言,例如Scala)return
中并不需要:递归函数的值是其最后一个表达式的值。简单地编写search_list(l->next, x)
就return
不会在Scala中工作!该return
语句的含义仅对具有必要背景的程序员而言是显而易见的。
return
所做的。