千家信息网

C语言中函数怎么用

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要为大家展示了"C语言中函数怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"C语言中函数怎么用"这篇文章吧。函数函数定义百度百科对函数的定义
千家信息网最后更新 2025年01月31日C语言中函数怎么用

这篇文章主要为大家展示了"C语言中函数怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"C语言中函数怎么用"这篇文章吧。

    函数

    函数定义

    百度百科对函数的定义:子程序

    在计算机科学中,子程序是一个大型程序中的某部分代码,有一个或者多个语句块组成,它负责完成某项特定的任务,而且相比于其他的代码,具备相对的独立性。

    一般来说会有输入参数和返回值,提供对过程的封装和细节的隐藏,这些代码通常被集成为软件库。

    函数一般格式

    C语言函数分类

    库函数

    为了支持可移植性和提高程序的效率,所以C语言的基础库提供了一系列库函数,库函数是对实现某种特定功能的代码的封装,当用户需要实现这种功能时,只需要调用此库函数即可,方便程序员进行软件开发。

    库函数的分类

    常用的库函数可简单的分为:IO函数,字符串操作函数,字符操作函数,内存操作函数,时间/日期函数,数学函数等等。

    库函数的学习

    这里我们主要提供两个网站提供用户学习库函数。
    (http://www.cplusplus.com)
    (http://en.cppreference.com)

    自定义函数

    自定义函数是程序员根据所要完成的功能,自己写出的源代码实现该功能。
    自定义函数和库函数一样,具有函数名,返回值类型,和函数参数。

    代码示例1:写一个函数找出两整数的最大值。

    int get_max(int x, int y){        return (x > y ? x : y);}int main(){        int a, b;        scanf("%d%d", &a, &b);        int MAX = get_max(a, b);        printf("MAX = %d\n", MAX);        return 0;}10 20MAX = 20请按任意键继续. . .

    代码示例2:写一个自定义函数交换两整型内容

    void swap(int * x, int * y){        int temp = *x;        *x = *y;        *y = temp;}int main(){        int a, b;        scanf("%d%d", &a, &b);        printf("交换前:a = %d b = %d\n", a, b);        swap(&a, &b);        printf("交换后:a = %d b = %d\n", a, b);        return 0;}10 20交换前:a = 10 b = 20交换后:a = 20 b = 10请按任意键继续. . .

    函数的参数

    实际参数

    实际传递给函数的参数,可以是变量,常量,表达式,函数,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。

    形式参数

    形式参数是指被调函数的函数名后括号里的变量,形参变量只有被调用时才分配内存空间储存,在未出调用该函数时,它们并不占内存中的存储单元,因此被称为形式参数或虚拟参数。且函数调用完成之后就即时的自动销毁,因此形参只在被调函数内有效。
    形参与实参的联系:当函数调用时,实参传递给形参,形参是实参的一份临时拷贝,所以对形参的修改不会影响实参。
    实参单元与形参单元是不同的单元。调用结束后,形参单元被释放,函数调用结束返回主调函数后则不能再使用该形参变量。实参单元仍保留并维持原值。因此,在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数中实参的值。

    函数的调用

    定义函数后,我们需要调用此函数才能执行到这个函数里的代码段。这和main()函数不一样,main()为编译器设定好自动调用的主函数,无需人为调用,我们都是在main()函数里调用别的函数,一个 C 程序里有且只有一个main()函数。

    传值调用

    函数的形参和实参分别占用不同的内存空间,且形参随着被调函数的结束而即时的销毁,所以对形参的修改不会影响实参。
    代码举例:

    void swap(int  x, int  y){        int temp = x;        x = y;        y = temp;}int main(){        int a, b;        scanf("%d%d", &a, &b);        printf("交换前:a = %d b = %d\n", a, b);        swap(a, b);        printf("交换后:a = %d b = %d\n", a, b);        return 0;}10 20交换前:a = 10 b = 20交换后:a = 10 b = 20请按任意键继续. . .

    传址调用

    传址调用,顾名思义就是把地址传递给被调函数,(实参与形参"不同级别")。
    代码示例:

    void swap(int * x, int * y){        int temp = *x;        *x = *y;        *y = temp;}int main(){        int a, b;        scanf("%d%d", &a, &b);        printf("交换前:a = %d b = %d\n", a, b);        swap(&a, &b);        printf("交换后:a = %d b = %d\n", a, b);        return 0;}10 20交换前:a = 10 b = 20交换后:a = 20 b = 10请按任意键继续. . .

    无参函数调用

    如果是调用无参函数,则不能加上"实参",但括号不能省略。

    void test(){}int main(){        // 函数的调用        test(); // right, 圆括号()不能省略        test(250); // error, 函数定义时没有参数return 0;}

    函数的声明和定义

    函数的声明

    所谓函数声明,就是告诉编译器将有一个或者已经有一个对应的函数,参数是什么,返回类型是什么,但是具体存不存在,编译器不确定。

    函数的声明一般是出现在函数使用之前,先声明,后使用。主要运用于多文件编程时,一般放在头文件中。

    函数的定义

    函数的定义是指具体实现某种功能的代码解释。

    #include int get_max(int x, int y); // 函数的声明,分号不能省略// int get_max(int, int); // 另一种方式int main(){        int a = 10, b = 25, MAX = 0;        MAX = get_max(a, b); // 函数的调用        printf("MAX = %d\n", MAX);        return 0;}// 函数的定义int max(int x, int y){        return x > y ? x : y;}

    函数声明与定义的区别

    定义是指对函数功能的实现,包括指定函数名、函数类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。

    声明的作用则是把函数的名字、函数类型以及形参的个数、类型和顺序(注意,不包括函数体)通知编译系统,以便在对包含函数调用的语句进行编译时,据此对其进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。

    exit与return介绍

    这里我们简单介绍一下return与exit的区别与联系:

    联系:在main函数中,exit和return的作用是一致的。
    区别:在子函数中调用return只是代表子函数终止了,在子函数中调用exit,那么程序终止。

    以上是"C语言中函数怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

    函数 形参 参数 代码 类型 功能 单元 程序 语言 编译 内存 内容 变量 学习 不同 形式 形式参数 示例 篇文章 编译器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 诈骗案中提供网络技术程序员 服务器刷题啥意思 个人网络安全隐私泄露 河北节能软件开发报价技术规范 sql数据库中二进制数据是什么 福建水投公司软件开发 sparql数据库有哪些 用友软件开发费入什么科目 威廉姆斯服务器组成 东莞软件开发公司排名 文件服务器故障 无限网络的dns服务器怎么设置 网络安全的重要性对我们 网络安全我知道作文800字 武威市网络安全和信息化委员会 获取服务器失败请联系客服怎么办 物理服务器迁移到虚拟机存储空间 多台服务器下载一个文件 2018年网络安全法宣传片 西工大网络安全试题及答案 惠州时序数据库 数据库技术及应用第二章答案 计算机大赛网络安全挑战赛 对于网络安全工作的认识 diy低功耗服务器 我的世界去哪租服务器 韩国数据中心服务器 传奇3当前服务器满员 数据库的路程讲解 10家网络安全企业
    0