千家信息网

C语言的函数怎么定义和使用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"C语言的函数怎么定义和使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C语言的函数怎么定义和使用"吧!关于函数函数是C语言的基本单元,
千家信息网最后更新 2026年11月03日C语言的函数怎么定义和使用

本篇内容主要讲解"C语言的函数怎么定义和使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C语言的函数怎么定义和使用"吧!

    关于函数

    函数是C语言的基本单元,函数中包含实现程序功能的代码。

    C语言程序的入口位于main()函数之中,为了方便组织配合,调试和运行,一般是用main函数作为主调函数,通过调用其他的函数来实现程序的运行。

    他们的关系图如下:

    1. 函数的定义形式

    先给大家看看完整的函数代码格式,先有个大概印象

    int add(int a,int b);//这是函数声明,告诉系统有这样一个函数//注:如果函数写在main函数之前,那这句代码是可以省略的int add(int a,int b){        int c=a+b;        return c;}
    • 函数头

    格式:

    返回类型 函数名 (参数1,参数2,…)

    对于上面函数例子int add(int a,int b)来说,add前面的int是返回类型,add是函数名,int a 是第一个参数,int b 是第二个参数。

    翻译: 定义了一个名为add的函数,向函数传入两个整形数据后,函数会返回一个函数内部处理后的整形数据。

    • 函数体

    函数名后带括号里的全部内容。函数体内部包括声明变量和执行完成函数功能的代码。

    解释: 这里声明了整形变量c,用c接受了参数a和参数b相加后的值,然后add函数返回c的值。

    2. 函数的声明

    函数的声明的告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体内容还是要看函数内部的功能代码。

    形式:

    返回类型 函数名 (参数) ;

    注意要有";"来结束声明。

    3. 返回语句

    在C语言学习中会经常看到这样一句代码return 0;这也是main函数的最后一句代码,其作用有以下两点:

    • 立即从当前函数中退出,返回到调运这个函数的程序中。

    • 将函数的返回值待会到调用这个函数的程序中。

    来给大家看个例子:

    //int Add5(int n);//这里的函数声明在main函数之前,可以省略上面一行的代码int Add5(int n){        return n + 5;        //看看return后面的语句能不能被执行        printf("能执行的话吱一声");}int main(){        int a = 1,b=0;         b = Add5(b);         printf("%d", b);         return 0;}

    return 后面的代码是不会运行的。

    4. 函数参数

    参数根据其传送的方式分为形式参数和实际参数两种。

    4.1 形式参数(传值调用)

    形式参数的作用就算传送数值,它把参数的数值传入函数,但参数本身的值是不会被函数修改的,前面举的例子都是用的形参(形式参数的简称)。

    下面给大家看看例子:

    void fuc(int n);//void类型即返回类型为空,不会有返回值,但还是会运行内部的代码。//这里的声明不能省!函数的定义在main函数下面。int main(){        int a = 10;        fuc(a);//将a的值传给了n        printf("%d", a);        return 0;}void fuc(int n)//这里是函数的定义{        n = 0;}

    结果打印a的值为10,没有被fuc()修改成0。

    4.2 实际参数(传址调用)

    实际参数是通过把参数的地址传到函数内部,函数通过地址直接修改实际变量的值,因此,实际参数是可以通过函数修改的。

    这里看看传递实参的效果:

    void fuc(int* n);//改动1 n的类型是指针,它存的是实际变量的地址int main(){        int a = 10;        fuc(&a);        //改动二 &为取地址符,直接获取变量的地址,这里是把a的地址传送到函数内部        printf("%d", a);        return 0;}void fuc(int* n)//改动三 其实和改动一是一样的//这里的变量是n,n的类型是int*,n现在是变量a的地址{        *n = 0;}

    对于*n = 0;

    *为解引用操作符,可以取出地址里面储存的值这里是把n中储存的地址对应的数赋值为0

    运行结果如下,a的值被更改为0

    4.3 无参数

    很多时候函数是不需要参数的,没有参数是不会影响函数运行的,一般打印菜单的话是不用设置参数的,这里随便给大家展示一下:

    void  Member_Menu();void  Member_Menu(){        printf("*******************\n");        printf("用户管理:>>\n请输入您想进行的操作:\n1.会员添加\n2.会员删除\n3.会员修改\n");}

    运行时函数的功能就是打印菜单。

    5. 函数的调用

    5.1 嵌套调用

    函数内部是可以再调用其他函数的。如:

    void fuc1(){   printf("函数1");   } void fuc2() { printf("函数2"); } void fuc3() {        fuc1();        fuc2(); } int main(){        fuc3();        return 0;}

    5.2 函数递归

    递归简单来说是自己调用自己,这种调用十分巧妙,它可以用少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

    递推实现的重点:

    • 找到递推公式

    • 设置结束标志

    现在给大家展示一下递归的使用:

    斐波那契数列:F(0)=1,F(1)=1,F(n) = F(n-1) + F(n-2) (n>=2)

    递归版本:

    int fib(int n){ if (n <= 2)          return 1;    else    return fib(n - 1) + fib(n - 2);}

    非递归版本:

    int Fib(){        int n,m=1,k,j,i=0;        scanf_s("%d", &n);        if (n == 0 || 1 == n)                i = 1;        if (n > 1)        {                for (k = 1, i = 1; k < n; k++)                {                        j = i;//储存i即n-1                        i += m;//n=n-1  +n-2                        m = j;//m==f(n-2)变成n-1,也就是下一个的n-2                }        }        printf("%d", i);}

    到此,相信大家对"C语言的函数怎么定义和使用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    函数 参数 代码 地址 类型 变量 实际 程序 运行 语言 形式 递归 例子 内容 功能 形式参数 会员 学习 作用 数值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 耶加雪菲 互联网科技工作委员会 互联网科技官网 互联网属科技 今日互联网科技 盈实互联网科技 互联网未来科技 极限挑战互联网科技 百单互联网科技有限公司 米客互联网科技 碳银互联网科技有限公司 互联网公司会议桌创意科技软装饰 央行互联网金融科技公司 互联网校园科技培训 米聚互联网科技南京有限公司排面 玉溪新华互联网科技好不好 北京市互联网新科技 信承诺互联网科技有限公司 陕西九四连强互联网科技有限公司 求路客互联网科技电话 中智农互联网科技 互联网医疗科技 互联网科技类展会 成都玖崟互联网科技有限公司乐商圈怎么样 小米互联网科技园设置 崇明区互联网教育科技售后服务 速维有品互联网信息科技(苏州)有限公司 济南小医互联网科技有限公司招聘 山东蛋芒互联网科技有限公司 广州全民伙伴互联网科技有限公司
    0