第20章总结
本节阅读量:章节回顾
函数参数可以通过值、引用或地址传递。对基本数据类型和枚举器使用传递值。对结构体、类或需要函数修改参数时使用按引用传递。使用按地址传递指针或内置数组。
值可以按值、引用或地址返回。大多数情况下,按值返回是可以的,但在处理动态分配的数据、结构体或类时,按引用或地址返回可能很有用。如果通过引用或地址返回,请记住不要返回超出作用域的内容。
函数指针允许我们将函数传递给另一个函数。这对于允许调用者自定义函数的行为很有用,例如列表的排序方式。
动态内存分配在堆上。
调用栈跟踪从程序开始到当前执行点的所有活动函数(那些已被调用但尚未终止的函数)。局部变量在栈上分配。栈的大小有限。vector可以用于实现类栈的行为。
递归函数是调用自身的函数。所有递归函数都需要终止条件。
命令行参数允许用户或其他程序在启动时将数据传递到程序中。命令行参数始终是C样式字符串,如果需要数值,则必须转换为数字。
省略号允许您向函数传递可变数量的参数。然而,省略号参数不进行类型检查,并且不知道传递了多少个参数。由程序员手动来跟踪这些细节。
Lambda函数是可以嵌套在其他函数中的函数。它们不需要名称,与算法库结合使用非常有用。
