目录
1.函数的声明与定义
<声明>就好像是告诉别人有个工具叫“削水果刀”,但是还没说这刀长啥样、怎么造。定义呢,就是详细地说这个“削水果刀”是啥样子,用啥材料做的,怎么做出来。比如说,我们想做个能算两个数相加的工具(函数)。
声明就是: int add(int num1, int num2); 这就告诉别人有这么个能算两数相加的工具。
<定义>就是:
int add(int num1, int num2)
{
return num1 + num2;
}
这就详细地写出这个工具怎么工作,能算出两个数相加的结果。
2.函数的参数
<参数>就像是给工具的一些材料,让工具根据这些材料来干活。比如算两数相加的函数 add , num1 和 num2 就是参数。就好像你给了两个苹果,让工具去处理。
3.函数的返回
返回就是工具干完活给你的成果。
比如 add 函数算出两数相加的结果,然后把这个结果给你,这就是返回。
#include <stdio.h>
// 两数相加的函数
int add(int num1, int num2) {
return num1 + num2;
}
int main() {
int num1 = 5;
int num2 = 3;
int sum = add(num1, num2);
printf("%d 和 %d 相加的结果是: %d\n", num1, num2, sum);
return 0;
}
代码中, add 函数接受两个整数参数 num1 和 num2 ,并通过 return num1 + num2; 返回它们的和。在 main 函数中调用 add 函数并输出结果。
4.函数的调用
调用就是使用这个工具来干活。
比如算 3 和 5 的和,就这么写:
int a = 3;
int b = 5;
int sum = 0;
sum = Add(a,b); // 这就是调用 add 函数来帮你算
printf("sum=%d\n",sum);
5.函数的递归
递归就像是自己叫自己帮忙。
比如说,算从 1 加到 10 ,可以这样写个递归函数:
int sum(int n)
{
if (n == 1)
return 1;
else
return n + sum(n - 1);
}
这就像自己不断叫自己,直到条件满足为止。
6.局部变量和全局变量
局部变量,就像是你放在自己房间抽屉里的东西,只有在你的房间里能用到。
全局变量,就像是放在家里客厅大家都能看到、都能用的东西。
例如:
#include <stdio.h>
// 全局变量
int globalVar = 10;
void function() {
// 局部变量
int localVar = 20;
printf("局部变量localVar的值为: %d\n", localVar);
printf("全局变量globalVar的值为: %d\n", globalVar);
}
7.头文件
头文件(后缀 .h)就像是个说明书的目录。
比如说,你有很多工具的说明,把它们的名字和大概介绍放在一个文件里,这就是头文件。要用哪个工具,就去这个目录里找。
常见的有:
<stdio.h> :用于输入输出操作,比如从键盘读取数据,向屏幕输出数据。
<stdlib.h> :包含一些通用的工具函数,比如内存分配和随机数生成。
<string.h> :用于处理字符串相关的操作,像字符串的复制、比较等。
<math.h> :进行各种数学计算,像三角函数、指数、对数等。
<time.h> :处理和时间有关的操作。
<ctype.h> :用于字符分类和转换。
8.内部函数和外部函数
1,内部函数
内部函数(也称为静态函数)是指在函数的返回类型前加上 static 关键字修饰的函数。
内部函数只能在其所在的源文件中被使用,其他源文件不能调用它。内部函数就像是家里自己人用的工具,只能在家里用。
static 关键字作用:
- 修饰局部变量(局部变量的生命周期变长)
- 修饰全局变量,改变了变量作用域,使静态全局变量只能在自己所在源文件内部使用,其他源文件无法访问
- 修饰函数。一个函数一般具有外部链接属性(一个函数只能在自己所在源文件内部使用),如果被 static修饰 则具有内部链接属性(其他源文件无法访问)。
2,外部函数
外部函数,就像是可以借给邻居用的工具。
外部函数是指默认情况下的函数,如果没有使用 static 关键字修饰,就是外部函数。外部函数可以被其他源文件通过 extern 关键字声明后调用。
以下是外部函数的示例:
假设有两个源文件: file1.c 和 file2.c
file1.c 内容如下:
#include <stdio.h>
void externalFunction() {
printf("这是一个外部函数\n");
}
file2.c 内容如下:
#include <stdio.h>
// 声明外部函数
extern void externalFunction();
int main() {
externalFunction(); // 调用来自 file1.c 的外部函数
return 0;
}