c语言函数入门保姆式讲解

1. 函数是什么

我们对函数的定义是:子函数。

在计算机科学中,子程序是一个大型程序中的某部分代码, 由一个或多个语句块组
成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软
件库。

2. 函数的分类

函数分为 (1)库函数 ( 2)自定义函数。

2.1 库函数

库函数是为了支持可移植性和提高程序的效率,C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。

例如 (打印 printf)  (拷贝 strcpy)  (n的k次方运算 pow)

而为了深入了解库函数的更多用法,我们可以在www.cplusplus.com网站中进行查找。

注:使用库函数,必须包含#include对应的头文件

2.2自定义函数

显然库函数我无法满足我们是所有的需求,所以很多情况下需要我们自己设计函数来达到目的。

自定义函数和库函数一样,有函数名,返回值类型和函数参数。

ret_type  fun_name(para1, * )
{
statement;//语句项
}
ret_type 返回类型
fun_name 函数名
para1   函数参数

eg:我们写一个比较两个数大小的函数

eg.1:

#include <stdio.h>
//get_max函数的设计
int get_max(int x, int y)
{
return (x>y)?(x):(y);
}
int main()
{
int num1 = 10;
int num2 = 20;
int max = get_max(num1, num2);
printf("max = %d\n", max);

return 0;

}

此时较大值就会返回到max中

eg.2 交换两个整形变量的内容

我们可以看到swap1函数未对a,b的数值进行交换,而swap2函数对a,b的数值进行了交换。

原因就是下面形参,实参的问题。

3.函数参数

3.1实际参数(实参)

真是传给函数的参数,叫实参。

实参可以是:常数,变量,表达式,函数

但无论是何种类型的量,都必须由确定的值,以便在调用函数时将值传给形参。

3.2形式参数(形参)

形参是函数名后括号中的变量,因为形参只有在函数被调用的时候才能实例化(分配内存单元)。

形参在函数调用后自动销毁。故形参只有在函数中才有效。

而上文第2点中的swap1是因为创建了与实参内容相同的空间,内容相同而空间不同,故而交换形参的数值,对实参没有效果,也就是所谓的传值调用。

swap2则传输了地址,从而交换了变量,即为传址调用,这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量。

4. 函数可以嵌套调用,但不能嵌套定义。

5.函数的链式访问

一个函数的返回值可以作为另一个函数的参数。

eg:

int main()
{
  char arr[20] = "hello";
int ret = strlen(strcat(arr,"bit"));
printf("%d\n", ret);
return 0;
}

6.函数的声明和定义

6.1函数的声明

告诉编译器,函数叫什么,返回什么,参数什么。但函数是否存在,声明无法决定。

函数的声明一般出现在函数使用之前,先声明后使用。

函数的声明一般要放在头文件里。

6.2函数的定义

函数的定义是指函数的具体实现,交待函数的功能实现。

7.函数的递归

7.1什么是递归

函数调用自身的编程技巧为递归

递归只需要很少的代码就能完成很复杂的运算,大大减少了代码量。

递归的主要思想:大事化小。

7.2递归的两个必要条件

存在限制条件,且当函数满足限制条件是,递归便不再继续。

每次递归调用后越来越接近限制条件。

递归需要大量的练习,下次我会举出几个递归的题目并给出题解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值