C++中函数的参数传递有按值传递、地址传递和引用传递。这是因为,该函数的参数是按值传递的,不对实参产生影响。......
2023-11-07
1.实参到形参的数据传送
形参出现在函数定义中,只能在该函数体内使用。函数调用时,调用函数把实参的值传送给被调用函数的形参,在被调用函数执行时对实参进行处理。
【例5.4】求三个数的最大值。
程序运行结果如图5.3 所示。
图5.3 程序运行结果
说明:
(1)定义函数时指定的形参变量在未出现函数调用时,并不占用内存的存储单元。只在函数调用时形参才被分配内存单元。调用结束后,形参所占内存单元被释放。
(2)在C 语言中,实参变量对形参变量的数据传递是“值传送”,且单向传送,即由实参传送给形参,而不能相反传送。
(3)ANSI 新标准允许使用另一种方法对形参类型做说明,即在列出“形参表列”时,同时说明形参类型。譬如,int max(int x,int y)。
(4)一个函数可以被多次调用。
2.函数返回值
通常希望通过函数调用得到一个确定的值,这就是函数的返回值。函数返回值通过函数中的return 语句获取,返回主调函数。return 语句格式:(www.chuimin.cn)
或者
该语句的功能是计算表达式的值,返回给主调函数。在函数中允许有多个 return 语句,但每次调用只能有一个return 语句被执行,因此只能返回一个函数值。
【例5.5】编写函数,求累加和。
程序运行结果如图5.4 所示。
图5.4 程序运行结果
说明:程序中实参与形参同名,但两者的作用范围不同,程序开始执行时,为主函数中的变量n分配存储空间,实参n 在主函数main()中有效;主函数调用函数s(),有效的是形参n。调用结束,回到主函数继续执行,此时形参n 的存储空间释放,主函数中作为实参的变量n 继续有效。由此可得出以下结论:
(1)形参在被调函数中定义,实参在主调函数中定义。形参定义时编译系统并不为其分配存储空间,也无初值,只有函数调用时,临时分配存储空间,接收实参的值,函数调用结束,内存空间释放,值消失。
(2)程序的运行结果表明,当函数调用时,实参的值传送给形参,在被调函数内部,形参的变化不会影响实参的值。
有关C语言程序设计实用教程的文章
指针变量既可以作为函数的形参,也可以作为函数的实参。所以,为了解决通过被调用函数来实现主调函数中变量值的改变,必须使用指针变量作为函数的形参。在执行被调用函数时,使形参指针变量所指向的变量的值发生变化。函数调用完成后,通过不变的实参指针变量将变化的值保留下来。图6.8程序运行结果说明:函数swap 的形参是两个整型指针变量p1 和p2,故主函数在调用时,必须使用变量a 和b 的地址,即&a 和&b 作为实参。......
2023-10-21
我们通过下面的示例来说明按值传递方式中参数在函数之间的传递。图5.1实参与形参传递示意图当数组名作为函数参数时,函数传递数据方式采用的是“按地址传递”的方式,但要求形参和相对应的实参都必须是类型相同的数组。图5.3数组v的存储形式这样一来,形参数组中元素值的改变就会反过来影响到实参数组。......
2023-11-18
程序的执行过程中,一个函数调用另外一个函数以完成某一特定的功能称为函数调用。如果函数调用出现在一个表达式中,该表达式亦称为函数表达式。函数调用时,实参的值传递到形式参数中就实现了数据由主调函数到被调函数的传递。图5.2swap函数值传递调用时参数的变化情况③控制流程转移到被调函数执行。在设计传值调用函数时,函数的形式参数是普通变量。......
2023-11-20
如果被调函数的形式参数是指针型参数,则主调函数中对应的实际参数就必须是同类型指针值(地址量),这种函数调用参数传递的方式称为传地址值方式。地址值参数传递函数调用示例。在例5.6的程序中,函数调用时将实参a和b的值复制给函数summul的形式参数x和y,实参变量mul将自己的地址传递给指针形式参数v。......
2023-11-20
针对不同的实际应用,数据排序方法有很多种。本节介绍两种常用排序方法的基本思想和实现方法,帮助读者初步理解排序方法的计算机解决思路。②不考虑已排好序的数据,将剩下的数据作为待排序列。编写程序实现冒泡排序算法,对随机生成的10个3位整数按升序进行排序并输出。......
2023-11-20
首先数组元素可以作为实参,其用法与变量完全相同。图5.5程序运行结果说明:用数组名作函数参数,应该在主调函数和被调用函数分别定义数组,例中array 是形参数组名,score 是实参数组名,分别在其所在函数中定义,不能只在一方定义。图5.8程序运行结果用数组名作为函数参数时应注意以下几点:形参数组和实参数组的类型必须一致。......
2023-10-21
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
相关推荐