c++ max函数_「C/C++」函数:定义、调用、参数传递

5.1基本概念

函数分为主函数和子函数,一个程序中主函数有且只有一个,是程序的入口,而函数(或称子函数)可以有很多。子函数的存在可以让主函数不臃肿、一目了然,增强代码可读性。

引入函数的意义:利用率高,可读性强,利于移植

前文介绍介绍过变量的作用域,跨函数传递参数,不会改变变量作用域,一般只是把主函数中的实参传递给了子函数中的形参,子函数处理后再return一个值。

5.1.1定义

  • 在main函数前,直接定义。
int 
  • 在main函数后,先声明再定义。
int 

注:1.函数定义不能嵌套,互相独立。

错误示范

2.函数命名一目了然,可读性强。

3.()内可以没有形参,表示不传入数据,但()不能省。

4.void类型函数无返回值。

5.指针类型函数返回指针指向地址。

char 

6.return回传数据类型和函数类型不一样时,转换为函数类型,如本例回传数据类型int。

5.1.2调用

int 

注:函数可以嵌套调用,如递归调用。

  • 递归调用

直接递归就是调用自身,间接递归就是通过其他函数调用自身。

达到终结条件,直接求解。

未达终结条件,递归调用。

调用过程:递推、回归。比较耗时耗内存,能用迭代解决的就用迭代解决。

适用递归的问题:子问题与原问题同,规模更小。

5.1.3参数传递

一般情况,每个子函数只能回传一个值,若要回传多个值,需使用引用参数或者指针参数。

  • ab是传值参数,改变ab值对实参无影响,数据从实参到形参单向传递。
  • sum是引用参数,改变sum直接改变实参,实参形参共用同一内存单元。
int 
  • p是指针参数,p中存放实参地址,改变p指向的内容即可改变实参。
实参可以是数组名、变量的地址、指针变量。

5.2 函数应用

87ff8df90c828c7a0b2ace004e74b018.png