如何使用函数及函数的注意事项

目录

什么是函数?

如何调用函数?

函数的先后关系?

函数的变量空间?


什么是函数?

首先我们来说一说函数的作用,就是一块简单的代码接受零个或多个参数,做一件事情,并返回零个或一个值

void sum(int a,int b)
{
int i;
int sum=0;
for(i=a:i<=b;i++)
{
sum+=i;
}

printf("%d到%d的和是%d\n",a,b,sum);
}

现在我们就写出了一个简单的求和函数和数学中的y=f(x)很像 

函数名sum
返回类型void
参数表int a,int b
函数体大括号里的所有东西
函数头大括号前的东西

这样在代码段中我们就可以用sum()代替这段代码避免重复写相同的代码增加代码质量。

如何调用函数?

第二 现在我们已经创建了一个函数那我们应该怎么去使用调用这个函数呢?

首先呢你肯定要给这个函数起一个名字 命名形式为  函数名(参数值);括号起到了调用函数的重要作用 即使不用输入参数也要这个括号  有参数那么则需要给出正确的数量和顺序 这些值会用来初始化函数中的参数  好了 现在我们已经可以使用这个函数来计算了 现在我们需要得到这个值 这也就和上表中的返回类型有关了 我们说两种简单的 一:int double 这类的它是可以返回值的 二void 这种则相反 说明一下啊返回值通俗的来讲就是得到值并用来赋值计算什么的   return 是老熟人了 作用是停止函数的执行 并送回一个值  两种写法 return; return 表达式;表达式可以是变量那就代表返回的是这个变量的值  void是没有返回值的所以不用return  而上述代码中我们是不能吧sum的值交给其他东西 因为用的是void

下面我们用一段代码来直观的表示

#include <stdio.h>
int max(int a,int b)
{
int ret;
if(a>b){
ret=a;
}else{
ret=b;
} 
return ret;
}
int main(){
int a,b,c;
a=5;
b=6;
c=max(10,12);
c=max(a,b);
c=max(c,23);
c=max(max(c,a),5);
printf("%d\n",max(a,b));
return 0;}

函数的先后关系?

假如我们把一个函数命名为sum() 我们就要把sum()写在上面这和c语言的编译器有关它是自上而下的分析这个代码 再看见sum(1,10)的时候它需要知道这个函数的基本信息 这个信息就是函数的参数 数量 每个参数的类型  返回类型是什么 一定要把sum()写在下面的话 为了让编译器可以看懂我们就需要声明一下让编译器知道这个函数的大致情况在上面加一个函数原型(函数原型就是函数头加一个分号)不声明的话编译器就回去猜函数的类型这就会导致出错

类型匹配?

如果函数有参数那么调用函数时必须传递给他数量,类型正确的值

类型不匹配在c语言中问题不是很大 编译器是个好人会悄悄帮你把类型替换好,就是这个类型可能不是你所期望的

函数可以简化你的代码 也就是避免一些重复的代码 那么随着一次又一次的传递  变量可以传递交换吗?答案是不可以 调用函数时,永远只能传只给函数

函数的变量空间和生命周期

每个函数都有自己的变量空间,参数也位于这个独立的空间中,这个空间我们叫做块。和其他函数没有关系。

本地变量是定义在块内的
它可以定义在函数的块内
也可以定义在语句的块内
甚至可以随便哪一个大括号来定义变量
程序运行进入这个块前,其中的变量不存在,离开这个块,其中的变量就消失了
块外面定义的变量在里面仍然有效
块里面定义的变量和外面同名则掩盖了外面的
不能在同一个块里定义同一个变量
本地变量不会被默认初始化
参数在进入的时候就被初始化了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值