原创首发于 CSDN,文章转载请注明出处,谢谢!
https://blog.csdn.net/weixin_46959681/article/details/115771239
编程语言中一个函数的定义
函数是一个程序代码的功能模块。 每个函数本质上是一个自带声明和语句的小程序 。可以利用函数将程序划分成多个功能模块,例如 printf()、 scanf()、putchar()、getchar()。模块化的函数便于程序员理解和修改程序,不必多次重复和编写功能代码,也起到复用的作用。
| 在代码中实现一个函数
演示代码: average1.c
/* average1.c */
double average(double a, double b)
{
return (a+b)/2;
}
在C语言中并没有计算“平均值”函数,上面的四行代码可以实现计算平均值。从上面的例子出发,我们可以大致看出一个函数的构造:
//形式参数可为空。
返回类型 函数名(形式参数)
{
函数体
}
函数调用
调用函数时,传递所需参数。以两个整数的加和为例子 sum(x, y)
/* sum.c */
#include <stdio.h>
int sum(int x, int y)
{
return (x + y);
}
int main()
{
int a;
int b;
printf("Please input tow numbers:\n");
scanf("%d%d",&a,&b);
printf("the sum of a and b equal %d\n", sum(a,b));
return 0;
}
拓
展
:
拓展:
拓展: 当程序调用函数时,程序控制权会转移给被调用的函数 。被调用的函数执行已定义的任务,当函数的返回语句 return
被执行时,或达到函数的结束括号时,会把程序控制权交还给主程序 main
。
|传参分析(不涉及栈)
sum()
是一个形式函数,int a 与 int b 仅是形式参数其作用域仅限于该函数,但也有自身内存空间。仅当函数被调用时,才有了内存空间,才有了该变量。调用时把内存空间内的数据被赋值成形式参数的值,函数的调用实际上是把实际参数的值复制一份给了形式参数。上述的程序变量将主函数 mian
中的
x
x
x 和
y
y
y 复制了一份到函数 sum()
中,实际上内存中存在两对变量。 打个比方,你爸爸叫你去买20斤大米,他将自己概念里的20斤米传了一份到你的大脑里。等于说,你爸爸的概念里有20斤米,你的概念里也有20斤米,这个信号接收的过程相当于传参。
函数传参结束后,函数的内存空间由内存管理单元自动回收即释放。
文章更新记录
- 文章初步完成。 「2020.12.24 22:05」
- 参考博客:c语言函数返回值问题 「2020.12.24 22:14」
- 大幅调整博文内容。 「2021.4.14 15:45」
P.S.1 平台的审核机制太落后了,不得已……修改了代码部分,重发一遍吧。