C/C++ 中的函数 (3.5)
函数就像一台机器,它们执行某些功能并产生某种类型的结果。例如,机器接收一些输入,处理这些输入并产生输出,类似地,函数接收一些值,对这些值进行操作并产生输出。手动地,一个人将输入传递给机器,然后机器才会开始其功能,以相同的方式,当程序员调用函数时,它将开始执行。
函数在不同的语言中名称可能不同,但它们共享两个共同的特征,例如:
它们包含需要处理的指令序列
这些指令由一个名称标识,该名称指的是函数
为什么要使用函数?
可重用性 - 当在多个地方需要相同的功能时,最佳方法是创建一次函数并多次调用它,而不是一遍又一遍地声明提供相同功能的函数。可重用性是函数提供的最大功能或优势。
代码模块化 - 函数使您的编码简洁明了,因为与其在 main() 函数中编写多行代码,不如声明函数使其更清晰易于阅读和编写代码。
易于修改 - 如果将来对代码有任何更改,那么程序员只需更改函数中的内容,而不是在多个地方进行更改。因此,我们可以说函数还可以减少数据冗余。
提供抽象 - 通过相关的函数名称,可以确定该函数应该做什么,而不是揭示该函数是如何做到的。例如,在 C 中,我们有“maths.h”头文件,其中包含多个函数,包括 pow() 函数。我们可以直接使用此函数来计算幂值,而不必知道此函数在定义中是如何计算它的。
函数声明和定义
函数声明是告诉编译器函数的返回类型和名称的过程。
语法
无函数体
Return_type function_name(parameter list which is optional);
有函数体
Return_type function_name(parameter list which is optional) { //body of the function }
解释
return_type - 它告诉编译器函数是否会返回任何内容,如果返回任何数据,则它将返回什么类型的数据。
void dummy(){ //since the return type of function is void it willn’t return anything to the caller and hence it willn’t contain return statement. } Int dummy(){ //since the return type of function is int it will return integer value to the caller and it is mandatory that it will contain return statement as it is returning integer value. return integer_value; } float dummy(){ //since the return type of function is float it will return floating value to the caller and it is mandatory that it will contain return statement as it is returning floating value. return float_value; }
函数名 - 函数名可以是程序员想要赋予函数的任何名称。例如,在上面的示例中,我们将函数命名为 dummy
参数列表(可选) - 每当函数对函数调用者传递的值进行操作时,都需要创建参数。
函数定义包含函数在被调用时应该执行的功能。
示例
#include<iostream> using namespace std; //function that calculates the greatest //value amongst two parameters int greatest(int val_1, int val_2) //return type of function is integer value{ //body of the function(Definition) if(val_1>val_2){ return val_1; } else{ return val_2; } } int main(){ int val_1=10, val_2=20; //calling the function and storing the integer value //returned by a function in the integer variable int highest = greatest(val_1,val_2); //printing the greatest value cout<<"The greatest value is : "<<highest; //as the return type of main is int, //it must have return statement for the compiler return 0; }
输出
上面代码的输出将是:
The greatest value is : 20
函数参数
参数是可选的,如果没有参数,函数也会执行其功能
在函数定义中声明的变量,用于捕获函数调用者传递的值,称为参数。int greatest(int val_1, int val_2)
int greatest(int val_1, int val_2)
由函数调用者传递的变量称为参数。
int highest = greatest(val_1,val_2);
实际参数与形式参数
实际参数是传递给函数的数据,例如在上面的示例中,10 和 20 是实际参数
形式参数是函数接收的数据,例如在上面的示例中,val_1 和 val_2 是形式参数。
关于函数 main() 的重要事项
每个程序都有一个入口点,从该点开始执行,例如在 C 和 C++ 中,我们有函数 main()。
如果 main() 函数的返回类型为 void,则表示该函数不会向编译器返回任何内容,而如果函数 main() 的返回类型为 int,则它会向编译器返回值。例如,我们在 main() 中有“return 0”,表示程序的终止。
在 C 中 - 函数 main() 的返回类型只能是 void 和 int,因为 main() 函数可以向编译器返回整数值,也可以不返回任何内容。
在 C++ 中 - 函数 main() 的返回类型只能是 int,因为 main() 函数向编译器返回值。