C++函数基础:定义、调用与形参

需积分: 1 0 下载量 24 浏览量 更新于2024-08-24 收藏 596KB PPT 举报
"C++程序设计 - 第三章 函数" 在C++编程语言中,函数是实现特定功能的代码块,它们可以被其他部分的代码调用来执行所需任务。函数由函数头和函数体两部分组成。函数头定义了函数的返回类型、名称以及形式参数表,而函数体包含了执行函数功能的代码。 3.1.1 定义函数 函数定义包括了返回类型(如果有的话,默认为int)、函数名、参数列表以及花括号内的函数体。例如: ```cpp return_type function_name(param_type param1, param_type param2) { // 函数体 } ``` 如果函数不需要参数,可以写为`void function_name()`,或者仅保留圆括号`function_name()`。 3.1.2 声明函数 函数声明用于告诉编译器函数的存在,不包含函数体。这允许编译器检查函数调用的正确性,而实际的函数定义可以放在调用之后。声明语法类似定义,但省略函数体: ```cpp return_type function_name(param_type param1, param_type param2); ``` 3.1.3 函数调用 调用函数时,提供实际参数(实参),它们的值被传递给函数的形式参数(形参)。例如: ```cpp result = function_name(value1, value2); ``` 3.1.4 函数调用的执行过程 当函数被调用时,控制权转移给函数,执行函数体中的代码,然后在函数返回时,控制权返回到调用者。 3.2 函数调用时参数的传递 C++支持值传递、引用传递和指针传递。值传递是复制实参的值给形参,形参的改变不会影响实参。引用传递使形参成为实参的别名,两者共享同一内存位置。指针传递则是形参为实参地址,通过形参可以修改实参。 3.3 内联函数 内联函数用于优化程序,通过将函数体插入到调用处来避免函数调用的开销。使用`inline`关键字声明。 3.4 带默认形参值的函数 函数参数可以有默认值,当调用时未提供相应参数时,会使用默认值。默认参数必须从右向左指定,并且在一个函数声明和定义中保持一致。 3.5 作用域 3.5.1 作用域决定了变量的可见性和生命周期。全局变量在整个程序中可见,而局部变量仅在定义它的函数或块中可见。 3.5.2 局部变量在函数结束时销毁,全局变量在整个程序运行期间存在。 3.6 递归调用 函数可以调用自身,这就是递归。递归通常用于解决分治问题,但需要注意防止无限递归。 3.7 函数重载 函数重载允许在同一作用域内定义多个同名函数,但要求它们的参数列表不同(数量、类型或顺序)。 3.8 系统函数 系统函数是C++标准库中预定义的函数,如`std::cout`用于输出,`std::cin`用于输入。 C++支持面向过程和面向对象编程。在面向过程编程中,函数是主要的逻辑组织单元,而在面向对象编程中,函数(方法)是类的一部分,操作对象。学习C++的函数概念是理解其程序设计基础的关键。