函数与数据内存

本文详细探讨了C语言中函数的各个方面,包括库函数、函数定义、调用与返回、函数参数传递、函数声明、函数的嵌套与递归调用、数组作为函数参数以及变量的作用域。此外,还讲解了主函数参数、局部变量、全局变量、静态存储和动态存储的区别,以及静态函数的概念。内容涵盖了函数在内存中的工作原理和如何有效地使用函数进行程序设计。
摘要由CSDN通过智能技术生成

函数与数据内存

函数时C语言实现模块化设计的方式,它是C程序中最小的功能单位。在一个C程序的实现过程中,通过使用函数,可以把较大、较复杂的程序任务分解成若干较小、较单一的独立任务

函数的优点:

  1. 降低了程序设计的复杂度,单个函数的功能更简单、独立,容易编程实现
  2. 降低了程序员开发程序的工作量,编程人员可以在已有函数的基础上构造新的程序,而不需要从头做起,避免重复编写
  3. 对于一些具体操作的细节,可以通过函数隐藏,是整个程序结果更清晰

一个完整C程序的函数可以分为两类:

  • 由用户自己定义并编写功能代码的函数,称为用户自定义函数
  • 由C系统标准库提供的标准库函数(简称库函数),使用其功能时,用户只需要遵循其调用格式进行调用就可以了

1. 库函数

注:在调用库函数时,需要在源文件中加入预处理命令#include <库函数名>

2. 函数定义

1. 函数定义的格式

函数返回值的类型名 函数名(类型名 形式参数1,类型名 形式参数2···)

函数定义的注意点:

  1. 函数名、圆括号中的参数、函数体内的变量它们都是由用户自定义的标识符,应当符合C语言语法中标识符的命名规则
  2. 同一个C程序中,不允许出现同名函数
  3. 同一个函数体范围内,不允许定义同名变量(定义在复合语句中的变量除外)
  4. C语言规定,函数不可以嵌套定义,即不能在一个函数的函数体中去定义另一个函数,每一个函数都是一个独立的函数模块
  5. 函数的返回值类型若为int或char,通常类型关键字可以缺省不写
  6. 函数必须先定义(先声明),后调用
  7. 若函数功能仅仅是完成了一些操作,没有返回值,则函数首部的函数返回值类型名应定义为void
  8. C程序允许定义空函数。空函数没有返回值,圆括号中没有参数,函数体也是空的,编译时不产生任何指令,执行时若调用空函数则直接返回,不执行任何功能,它的存在就像是在程序开发时留下的"功能扩展槽"
2. 有参函数与无参函数

函数首部圆括号内的参数称为形式参数,简称形参。一个函数可以没有形参,也可以有一个或多个形参,这是根据函数本身所要实现的功能需要而设定的

通常,有参函数调用时,首先需要通过其形式参数得到具体的值,然后才执行该函数

而对于无参函数,函数没有必要必须提前得到一个值才能执行

函数有多个形式参数时,必须逐个说明每一个形式参数的数据类型,无论它们的数据类型一致还是不一致,这与变量定义的格式不一样

int Exp(int a, int b)
{
   
    int x,y;
    ···
}

其中,a,b是形参,而x,y是函数Exp函数的局部变量。虽然a,b的数据类型一样,但函数定义格式要求它们必须分别说明自己的数据类型;对于局部变量x,y,则不需要如此

3. 函数的调用与返回

函数都是通过调用得以执行其功能的。

对于一个C程序来说,主函数main()是由系统调用执行的,而其他函数则是由主函数调用的。把调用其他函数的函数称为主调函数,被主调函数调用的函数称为被调函数。

程序的一次执行过程:程序开始执行时,系统总是会先找到程序中的main()函数,从main()函数开始顺序执行其函数体的语句,在执行的过程中遇到了对其他函数的调用时,再转入其他函数开始执行,直至返回到main()函数,最终待main()函数执行结束后,返回调用它的系统,程序的一次执行过程结束

1. 函数调用形式

函数调用的一般形式:

被调函数名 (实际参数1, 实际参数2···)

实际参数可以是C语

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值