文章目录
前言
本章节主要学习C语言中的函数
一、函数是什么?
维基百科中对函数的定义:子程序
- 在计算机科学中,子程序(德语:unterprogramm,英语:subroutine, subprogram, callable unit),是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。
- 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。
- 函数在面向过程的语言中已经出现。是结构(struct)和类(class)的前身。本身就是对具有相关性语句的归类和对某过程的抽象。
二、C语言中函数的分类
- 库函数
- 自定义函数
1)库函数
为什么会有库函数?
- 在学习编程中想知道结果,这个时候我们会频繁使用一个函数:将信息按照一定的格
式打印到屏幕上 printf() - 在编程的过程中我们会频繁的做一些字符串的拷贝工作 strcpy()
- 在编程是我们也计算,总是会计算n的k次方这样的运算 pow()
像上面我们描述的基础功能,它们不是业务性的代码。我们在开发的过程中每个程序员都可能用的到,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发
C语言常用的库函数:
- IO函数
- 字符串操作函数
- 字符操作函数
- 内存操作函数
- 时间 / 日期函数
- 数学函数
- 其他库函数
注:使用库函数,必须包含 #include 对应的头文件
2)自定义函数
自定义函数是C语言的重中之重,所以我们一定要把它学好!
自定义函数和库函数一样,有函数名、返回值类型、函数参数。
二者的区别是自定义函数由我们自己来设计,可以根据需求定义各种不同的函数。
函数的语法结构:
ret_type fun_name(para1, para2)
{
statement;//语句项
}
ret_type 返回类型
fun_name 函数名
para1 函数参数
需求:写一个函数交换两个整形变量
#include <stdio.h>
// 无法实现交换两个整形变量
void Swap1(int x, int y)
{
int tmp = 0;
tmp = x;
x = y;
y = tmp;
}
// 正确的版本
void Swap2(int *px, int *py)
{
int tmp = 0; // *解引用操作符
tmp = *px; // *px通过传递过来的地址值,得到内存地址中储存的值
*px = *py;
*py = tmp;
}
int main()
{
int num1 = 1;
int num2 = 2;
Swap1(num1, num2);