函数的概念和应用

例:

#include<stdio.h>
int sum(int begin, int end);

int main(void)

{
int begin,end;
begin = 1;
end = 10;
result = sum(begin,end);
printf("%d到%d的和为%d\n ", begin, end, result);

return 0;

}
int sum(int begin, int end)
{

int i;

int sum = 0;

for (i = begin; i < end; i++)
{
sum += i;
}
return sum;
————————————————
版权声明:本文为CSDN博主「手打猪大屁」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Black__goat/article/details/128588315

以此代码为例:

首先:

  • int sum(int begin, int end);叫做函数声明,函数声明的作用是让编译器预留出一部分空间,同时让编译器先知道函数的样子

  • int sum(int begin, int end) //这叫做函数定义,定义是能够开辟空间的,空间大小等于函数类型的大小(整数型四个字节)

{

..........

return sum;

}

  • {......} --函数体,在函数体内定义的变量都属于局部变量,只要出了该函数体,这些局部变量就会消失,变量从定义到消失的时间段就叫作这个变量的生命周期

  • sum(begin,end); --函数调用,括号里的叫做实际参数,简称实参

  • int -- 函数返回值类型(不需要返回值时可改为void,如void sum(....))

  • return sum;--函数返回值,就是将return后面的变量的值,或常数,或表达式的运行结果返回到函数定义时开辟的空间中保存,作为函数运行的结果,该结果的数据类型要与申明和定义时的函数返回值类型一致

  • sum --函数名

  • (int begin, int end) --参数表,括号里的叫做形式参数,简称形参,不需要参数的时候可以改为void,如 int main(void)

  • int main(void) --main称为主函数,一个c程序中只能有一个主函数,可以有多个自定义函数

  • int --是参数的类型,即在函数调用时,传入的实参必须是整数型的

  • int sum(int begin, int end) -- 函数头,声明就是由 函数头加分号构成

函数的运行:

  1. 编译器先通过函数声明( int sum(int begin, int end);)知道了sum函数的样子

  1. 然后运行到函数调用部分:

result = sum(begin,end);

然后程序就会进入到sum函数中:

int sum(int begin, int end)

{

int i;

int sum = 0;

for (i = begin; i <= end; i++)

{

sum += i;

}

return sum;

然后通过一系列的运算,sum = 55;

于是到了 return sum;

这里的return的作用是,将sum的值返回到之前函数定义时所开辟的空间中保存

再下一步,{.....}内所有的局部变量都消失了

然后函数sum带着刚刚保存的结果55回到函数调用的地方,将函数运行的结果55赋值给result

注意:

  • 函数sum和变量sum是不相同的,只是方便理解所以这么定义。

  • 还有main函数中定义的beginendsum函数中定义的beginend也是不相同的,在函数sum中的beginend就是两个刚定义的新变量,用来存放函数调用时传入的两个实参,当调用结束时这两个变量也随之消失,main函数由于还没运行结束,所以main函数中的局部变量还不会消失

  • 当函数是void类型时,则不能够出现return,若不是则必须要有return,有些编译器会在主函数main的结尾自动加一个return 0(作用是告诉你,主函数程序运行成功,为什么是0是因为0是一个特殊的,是唯一的,计算机中,是否满足条件的结果用0和非0表示);所以即使有时你没写也不会报错,但最好要写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

手打猪大屁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值