一篇文章帮你函数从入门到精通(一)

前言

上一篇文章中,我们讲述了C语言中函数的基本概念,在这篇文章中,我们来讲述一下函数后续的内容。

自定义函数

在代码程序编写中,相较于库函数而言,程序员自己编写的自定义函数的应用范围尤其广泛,所以,我们也应该更加关注。

函数的语法形式

其实,C语言中库函数和自定义函数基本相似,自定义函数的语法格式如下:

ret_type fun_name(形式参数)

{

ret_type:是函数的返回类型;

fun_name:函数名;

括号里面是形式参数;

{}里面是函数体;

我们可以把函数想象成为一个小型的加工厂,工厂需要输入原材料,并且经过工厂加工才会输出成品,那函数也是一样,函数需要输入一些数字,经过函数的计算,最后输出结果。

 ret_type:是函数的返回类型;也可以是void,表示什么都不返回。

fun_name:函数名;为了方便使用,应该根据自定义函数的功能取得有特点一些,这样子便于记忆。

函数的参数就相当于送进去的原材料,函数的参数也可以有0个,也可以有多个,也可以是void,表示没有参数,要是有参数的话,需要说明参数的类型,名称和个数。

{}括起来的部分就是函数体,表明函数计算的整个过程。

函数的举例

举一个加法函数的例子,看下面的代码块:

#include<stdio.h>
int main()
{
    int a;
    int b;
    int r;
    scanf("%d %d", &a, &b);
    r = a + b;
    printf("%d", r);
    return 0;
}
 

我们创造一个函数Add,这个函数就是自定义函数,执行两个函数的加法功能:

#include<stdio.h>
int add(int x, int y)
{
    int z = 0;
    z = x + y;
    return z;
}


int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    int r = add(a, b);
    printf("%d\n", r);

    return 0;
}

add函数也可以简化为:

#include<stdio.h>
int add(int x, int y)
{
    return x + y;

函数的参数部分要交代清楚,每个参数的类型和个数,形参的名称;

形参和实参

在函数的使用部分中,我们将参数分为形参和实参:

再看一次我们上面所写的代码:

#include<stdio.h>
int add(int x, int y)
{
    return x + y;
}
int main()
{
    int a = 0;
    int b = 0;
    //输入
    scanf("%d %d", &a, &b);

    int sum = add(a, b);

    printf("%d\n", sum);

    return 0;
}

实参

在上面的代码中,最上面是函数add的定义,有了函数之后,int后面是对add函数的调用,我们在调用add函数的时候,涉及到的参数a和b,这就是实参,实参就是真是传递给函数的参数,

形参

在上面的代码中,add后面的括号中的x和y就是形式参数,简称形参

什么叫形式参数呢,就是如果只是定义了add函数,而不去调用的话,那么x和y是不会向内存申请占用空间的,不会占用真实空间,所以叫做形式参数,如果add函数被调用的时候,x和y为了存放实际参数传送过来的值,从而向内存申请占用空间,这个过程叫做形式参数的实例化。

形参和实参的关系

虽然我们提到了实参将数据送到形参,他们之间是有联系的,但是实参和形参所占用的空间是不同的,这个,我们可以通过调试代码可以看到。

#include<stdio.h>
int add(int x, int y)
{
    return x + y;
}
int main()
{
    int a = 0;
    int b = 0;
    //输入
    scanf("%d %d", &a, &b);

    int sum = add(a, b);

    printf("%d\n", sum);

    return 0;
}

x86表示32位环境-编译生成32位的程序

x64表示64位环境-编译生成64位的程序

我们在调试过程中可以明确看到,x和y确实是得到了a和b的值,但是,x和y的地址和a和b的地址却并不相同,我们可以理解为形参是实参的一份临时拷贝。

return语句

在使用函数的过程,我们经常会使用到return 语句,这里,我们讲一下return 语句使用的注意事项。

1.return语句后面可能是一个数值,也可能是一个表达式,如果是一个表达式的话,就先执行表达式,返回表达式的结果。

2.return 后面也可以什么都不写,直接表示为return;,这种适用于返回类型为void类型的函数

3.return 返回的值和函数返回的值得类型不一样,系统将隐式转化为函数返回的值的类型。

4.return语句执行后,将会彻底返回,后续的代码不在执行。

5.如果函数中存在if等分支的语句,则要确保每种情况下都有return返回,否则将会出现编译错误。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值