C语言笔记:【函数】
一、函数是什么?
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main()。
二、C语言中函数的分类
1、库函数
一些不是业务性的基础功能,在开发的过程中每个程序员都可能用的到的代码,为了支持可移植性和提高程序的效率,C语言的基础库中提供了一系列库函数,方便程序员进行软件开发。
常用的库函数:
- IO函数:printf、scanf、getchar、putchar
- 字符串操作函数:strcmp、strlen、strcpy
- 字符操作函数:toupper
- 内存操作函数:memcpy、memcmp、memset
- 时间/日期函数:time
- 数学函数:sqrt、pow
- 其他库函数:...
示例:strcpy函数
char * strcpy ( char * destination, const char * source );
注意点:
1、使用库函数,必须包含 #include 对应的头文件
2、推荐学习查询工具网站:C/C++参考手册
2、自定义函数
函数的组成
ret_type fun_name(para1, * )
{
statement;
}
举例:(写一个函数可以交换两个整数中的内容)
#include <stdio.h>
void Swap(int *px, int *py)
{
int tmp = 0;
tmp = *px;
*px = *py;
*py = tmp;
}
int main()
{
int num1 = 1;
int num2 = 2;
Swap(&num1, &num2);
printf("num1 = %d num2 = %d\n", num1, num2);
return 0;
}
注意:此处Swap( int x, int y )的写法不能完成任务,因为完成交换的仅仅是一个副本
三、函数的参数
实际参数(实参)
真实传给函数的参数,叫实参。
实参可以是:常量、变量、表达式、函数等。
无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值。
形式参数(形参)
形式参数是指函数名后括号中的变量。
因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。
形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。
形参实例化之后其实相当于实参的一份临时拷贝
四、函数的调用
传值调用
函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。
传址调用
- 传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
- 这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量。