函数分为库函数和自定义函数
1.库函数
库函数的使用必须包含对应的头文件
常用的库函数有:
IO函数
字符串操作函数
字符操作函数
时间/日期函数
数学函数
内存操作函数
2.自定义函数
由于库函数无法做到所有事情,因此我们可以自定义函数,自定义函数有自己的函数名,返回值类型和函数参数,由自己自定义而成。
eg:用函数写交换两个整型变量的值
void swap(int x, int y) {
int temp = 0;
temp = x;
x = y;
y = temp;
}
#include <stdio.h>
int main() {
int a = 0, b = 0;
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;
}
运行结果为:
我们会发现两个数字没有做交换,因为a和b是实参,x和y是形参,交换时,实参传给形参,形参是实参的一份临时拷贝。因此形参的改变没有改变实参。
#include <stdio.h>
void swap(int* p_x, int* p_y) {
int temp = 0;
temp = *p_x;
*p_x = *p_y;
*p_y = temp;
}
int main() {
int a = 0, b = 0;
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;
}
修改后我们传的是数字的地址,再通过* 解引用符得到地址所对应的值进行交换