第18章 更深入的理解——函数进阶
第10章中已经讨论了函数的基础知识,读者对函数也有了基本的认识。本章从与函数关系最密切的调用和返回入手,在更深的层次上帮助读者理解函数。函数的参数传递有传值和传指针两种方式,从类型的角度上看,参数不仅可以是系统内建的数据类型,还可以是数组、结构等。此外,递归编程机制、带参主函数等都是本章讨论的重点内容。
本章包含的知识点有:
·参数传递的原理
·如何让函数返回值
·函数与结构体的应用
·函数与数组的应用
·递归编程的原理
18.1 参数传递的副本机制
如果将函数比作剧本,那形参和实参就相当于角色和演员,函数的参数传递有传值和传地址两种方式。传值调用时,在函数内对形参的改变不会影响实参,要想在函数内对实参进行操作,必须采用传地址调用的方式。这是形象化的理解,从本质上说,这是由参数传递的副本机制决定的。
副本机制是指copy(复制)的思想,不论是传值调用还是传址调用,系统都要为每个参数制作临时副本,或称复制。函数体中对参数的修改都是对副本的修改,下面具体分析。
18.1.1 传值调用的副本
传值调用的情况相对简单,不论传递的参数如何,系统都为这些参数制作临时副本,函数体中对参数的修改都是针对副本进行的,丝毫不会