C++程序设计之函数

2025-10-05 15:25:48

1、函数是C++源程序的基本模块。

函数的使用是通过函数调用完成的。

C++程序的全部工作都是由各式各样的函数完成的。

2、函数由返回值类型、函数名、参数表和函数体组成。

函数定义:

返回值类型 函数名( 类型1 参数名称1,类型2 参数名称2,类型3 参数名称3……)

{

   语句

}

C++程序设计之函数

3、返回值类型指明了函数返回值的类型。函数可以没有返回值,用void指定返回类型。

函数名是由用户定义的标识符,函数名后面有括号,其中可以无参数,但括号是必不可少的。

函数的参数是用于向函数传递数据的变量,参数可以为空

4、如果函数是在调用语句后定义的,在调用之前应对被函数进行声明。

返回值类型函数名(类型 参数,类型 参数……);

    当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用。

C++程序设计之函数

5、函数的参数分为形参和实参

    形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。

    实参出现在调用语句中,进入被调函数后,实参不能使用。

C++程序设计之函数

6、形参变量温狠只有在被调用时才分配内存单元。

实参可以是常量、变量、表达式等。

实参和形参的数量和顺序应严格一致。

注:函数调用中的参数传递发生的数据传送是单向的。

7、函数可以在参数表中设置一个或多个参数的缺省值,缺省参数只能从后向前替代缺少的实参值。提供缺省参数时,也应该从后向前设置缺省值。

参数缺省值一般出现在函数的声明中。

C++程序设计之函数

8、数组可以作为函数的参数使用,进行数据传递。

把数组元素(下标变量)作为实参使用

把数组名作为函数的形参和实参使用

用数组元素作实参时,形参并不是数组,而是和数组类型相同的变量。

用数组名作函数参数时,要求形参和相对应的实参都必须是类型相同的数组

注:函数形参对数组大小不敏感。

C++程序设计之函数

9、函数的返回值又被称作函数值。函数值只能通过return语句返回调用它的函数。

    在函数中允许有多个return语句,可以在函数内的任何地方结束函数执行并返回函数值。

    返回值类型不为void的函数,必须有return语句

C++程序设计之函数

10、通过对函数的调用来执行函数体。

调用方式:函数名(实际参数表)

对无参函数调用时则无实参表。  

实参表中的参数可以是常数仗匠著、变量或其他构造类型数据及表达式,各实参之间用逗号分隔。

C++程序设计之函数

11、方式调用函数:

1、函数表达式 

    int c= max(x,y);

2、函数语句

    printf ("%D",a);

3、作为函数实参

    printf("%d",max(x,y));

12、C语言中不允许作嵌套的函数定义。不能在函数内部定义其他函数。

C++允许在一个函数的定义中出现对另一个函数的调用,杰爹这就是函数的嵌套调用。

13、函数的递归调用

    一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。

注:递归函数必须有终止条件,否则会出现死循环调用,导致程序崩溃

C++程序设计之函数

14、ff(5);

调试环境下的【调用堆栈】窗口结果如下

C++程序设计之函数

15、函数重载,函数名一样,参数不一样的为重载函数。

如果函数名一样且参数一样,只有返回值不一样,这样不是重载函数。

C++程序设计之函数

16、这里要注意一个问题,隐式类型转换导致重载函数产生二义性。

C++程序设计之函数

17、内联函数,用inline关键字修饰的函数是内联函数。

1.关键字inline必须与函数定义体放在一起才能使函数成为内联

2.将inline放在函数声明前面不起任何作用。

3.如果函数体内的代码比较长,使用内联将导致内存消耗代价较高。

4.如果函数体内出现循环,那么执行函数体内代码的时间要比函数调用的开销大。

内联函数的优势:

1.类型安全检查  

2.自动类型转换

3.可以作为类的成员

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢