为什么要写这篇
前段时间看到一篇公众号文章:写给小白看的递归(硬核),讲解的是递归,认为是功能逻辑落实到代码实现上的一种基本知识,就像C语言的指针一样,缺少这部分认识,实现上捉襟见肘。回过头来翻收藏夹时重点看了一下,颇有感触,想记录下来。
初问:递归是什么
递归,就是函数自己调用自己。 只是听到这句话的话,应该会不明所以,有什么用?
我的初步理解
变量不传值而改为传地址,就分化出了指针的概念。
函数不调用别的函数而改为调用自己,就分化出了递归的概念。
换种熟悉的问法
你觉得指针有什么用?我的理解它就是指向物理地址的一个变量。
什么情况下才有的指针
由于程序正常工作时会从外部采集数据(变量),或者接收到数据(变量),以及函数为实现功能会设计几个辅助变量,函数与函数之间的对接交互也是变量,变量太多太零散不好管理(命名就是个大麻烦,零散的全局变量对于理解代码也是个大麻烦)变量能少用就少用,就有了指针。
指针能干什么
通过传地址代替传值 减少了不少中间变量(数组属于指针的应用,指针却不是数组,不知