C/C++(3.5) 中的函数
函数就像一台机器,它们执行某些功能并产生某种类型的结果。例如,机器接受一些输入,处理该输入并产生输出,类似地,函数接受一些值,对这些值进行操作并产生输出。手动将输入传递给机器,然后只有当程序员调用该函数时,机器才会以相同的方式启动其功能。
不同语言中函数的名称可能不同,但它们具有两个共同的特征,例如 −
它们包含需要处理的指令序列
这些指令由引用函数的名称标识
为什么使用函数?
可重用性−当多个地方需要相同的功能时,最好的方法是创建一次函数并多次调用它,而不是一次又一次地声明提供相同功能的函数。可重用性是函数提供的最大特性或优势。
代码模块化 − 该函数使您的编码整洁干净,因为您无需在 main() 函数中编写多行代码,只需声明函数即可使其更清晰、更易于阅读和编码。
易于修改 − 如果将来对代码进行任何更改,那么程序员只需在函数中进行更改,而无需在多个地方进行更改。因此,我们可以说函数也减少了数据中的冗余。
提供抽象 − 通过函数的相关名称,可以确定该函数应该做什么,而不是揭示该函数是如何做的。例如,在 C 中,我们有 “maths.h” 头文件,其中包含多个函数,包括 pow() 函数。我们可以直接使用这个函数来计算幂值,而不必知道这个函数在定义中是如何计算的。
函数声明和定义
函数声明是告诉编译器返回类型和函数名称的过程。
语法
无函数体
Return_type function_name(参数列表,可选);
有函数体
Return_type function_name(参数列表,可选) { //函数体 }
解释
return_type − 它告诉编译器该函数是否返回任何内容,如果返回任何数据,那么它将返回什么类型的数据。
void dummy(){ //由于函数的返回类型为 void,它不会向调用者返回任何内容,因此它不包含 return 语句。 } Int dummy(){ //由于函数的返回类型为 int,它将向调用者返回整数值,并且由于它返回整数值,因此它必须包含 return 语句。 return integer_value; } float dummy(){ //由于函数的返回类型是 float,它将向调用者返回浮点值,并且必须包含 return 语句,因为它返回的是浮点值。 return float_value; }
函数名称 − 函数名称可以是程序员想要赋予函数的任何名称。如上例所示,我们将函数命名为 dummy
参数列表(可选) −每当函数对函数调用者传递的值进行操作时,我们都需要创建参数。
函数定义包含函数每次被调用时应该执行的功能。
示例
#include<iostream> using namespace std; //计算两个参数中最大的值的函数 int greatest(int val_1, int val_2) //函数的返回类型是整数值{ //函数体(定义) if(val_1>val_2){ return val_1; } else{ return val_2; } } int main(){ int val_1=10, val_2=20; //调用函数并存储整数值 //由函数返回的整数变量 int highest = greatest(val_1,val_2); //打印最大值 cout<<"最大值为 : "<<highest; //因为 main 的返回类型是 int, //它必须有 return 语句以供编译器使用 return 0; }
输出
上述代码的输出为 −
最大值为: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() 函数向编译器返回整数值。