C 语言学习记录:函数
在 C 语言的学习旅程中,函数是一个非常重要的概念。它就像是程序中的 “小助手”,能够帮助我们更高效地组织和管理代码。本篇博客将分享我在函数方面的初步学习和记录。
一、函数的定义
1.1 函数的意义
函数,也被称为方法。定义函数最大的意义在于让函数帮我们去完成特定的任务。它具有诸多优点:
- 封装代码,便于模块化编程:将一段特定功能的代码封装在函数中,使得程序结构更加清晰,不同功能模块之间的独立性增强,便于开发和维护。
- 让代码看起来更加整洁:避免了代码的冗长和重复,使整个程序的结构一目了然。
- 方便复用代码:一个函数可以在程序的不同地方多次调用,提高了代码的复用率,减少了开发时间和工作量。
1.2 函数的语法
函数的基本语法结构如下:
返回类型 函数名称(形参列表) { // 函数体 return 值; }
- 返回类型:指定函数执行完毕后返回值的类型,如
int
、double
等。如果函数不需要返回值,则使用void
类型。 - 函数名称:是函数的标识符,用于在程序中调用该函数,命名应具有一定的描述性,以便于理解函数的功能。
- 形参列表:是函数接收的参数,多个参数之间用逗号分隔。形参在函数调用时接收实际传递的值。
- 函数体:包含了实现函数功能的具体代码。
- return 语句:用于将函数的执行结果返回给调用者。如果返回类型为
void
,则可以省略return
语句,或者使用return;
表示函数结束。
二、函数的使用
2.1 求两个整数的和
下面是一个简单的函数示例,用于求两个整数的和:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> // 定义一个函数,求a + b的和 int sum(int x, int y) { return x + y; } // 主函数 int main() { int a = 3; int b = 4; // 函数的调用 int s = sum(a, b); printf("%d\n", s); return 0; }
在这个示例中,我们定义了一个名为sum
的函数,它接收两个int
类型的参数x
和y
,并返回它们的和。在main
函数中,我们调用了sum
函数,并将结果存储在变量s
中,最后将结果打印输出。
2.2 计算圆的面积
接下来,我们看一个计算圆面积的函数示例:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define PI 3.1415926 // 计算圆的面积 double area(int r) { return PI * r * r; } // 主函数 int main() { int r = 0; printf("请输入圆的半径:\n"); scanf("%d", &r); // 返回面积 double a = area(r); printf("面积:%.2f", a); return 0; }
在这个示例中,我们定义了一个名为area
的函数,它接收一个int
类型的参数r
,表示圆的半径,并返回圆的面积。在main
函数中,我们通过scanf
函数获取用户输入的半径,调用area
函数计算面积,并将结果保留两位小数后打印输出。需要注意的是,我们使用了#define
指令定义了常量PI
。
2.3 打印 99 乘法表
编辑
下面是一个打印 99 乘法表的函数示例:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> // 打印 99 乘法表 void m2() { // 循环行 for (int i = 1; i <= 9; i++) { // 循环列 for (int j = 1; j <= i; j++) { printf("%dx%d=%d\t", j, i, j * i); } // 换行 printf("\n"); } } // 主函数 int main() { // 调用函数 m2(); return 0; }
编辑
在这个示例中,我们定义了一个名为m2
的函数,它的返回类型为void
,表示不返回任何值。在函数内部,我们使用了两层嵌套的for
循环来打印 99 乘法表。外层循环控制行数,内层循环控制列数。在main
函数中,我们调用了m2
函数来打印乘法表。
2.4 打印金字塔
编辑
最后,我们来看一个打印金字塔的函数示例:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> // 打印 三角形金字塔 void m3(int num) { for (int i = 1; i <= num; i++) { // 每一行都是由空格 & *组成 for (int j = 1; j <= num - i; j++) { printf(" "); } // 打印* for (int k = 1; k <= 2 * i - 1; k++) { printf("*"); } printf("\n"); } } // 主函数 int main() { int num = 0; printf("请输入金字塔的深度:"); scanf("%d", &num); // 调用函数 m3(num); return 0; }
在这个示例中,我们定义了一个名为m3
的函数,它接收一个int
类型的参数num
,表示金字塔的深度。在函数内部,我们使用了三层嵌套的for
循环来打印金字塔。外层循环控制行数,中间层循环用于打印每行前面的空格,内层循环用于打印每行的*
号。在main
函数中,我们通过scanf
函数获取用户输入的金字塔深度,然后调用m3
函数来打印金字塔。
通过以上这些示例,我们可以看到函数在 C 语言中的强大作用。合理地使用函数可以让我们的代码更加简洁、高效和易于维护。在后续的学习中,我将继续深入探索函数的更多特性和应用场景。
希望这篇学习记录能对正在学习 C 语言的小伙伴们有所帮助,如果你有任何疑问或建议,欢迎在评论区留言交流
#算法##C语言##初学者##个人成长#C语言的初步学习