网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
函数分为自定义函数和库函数,库函数就比如我们前面所说的sqrt();需要声明math.h头文件,调用该函数就可实现求平方根的功能,如果我们想要的功能库函数没有,那就需要用到自定义函数了。
2.用处
将程序分解成更小的块,便于检查;降低理解难度,提高程序质量;减小程序体积,提高代码可重用性;
3.函数的定义
1.格式
返回值类型 函数名(类型1 形参名1,类型2 形参名2…){
}
返回值类型如果是int型那么函数内容里的最后必须返回一个符合函数返回值类型的值,void型则不需要返回值。
2.形参
形参全名形式参数,又称虚拟变量。实参和形参可以重名。形参只是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。必须注意实参的个数,类型应与形参一一对应。
3.实参
实参全名实际参数,在调用函数时()里写的是实参,实参可以是常量、变量、表达式或者函数。需要注意的是,在进行函数调用时,这些实参必须要有明确的值。
参数传递的本质就是用实参来初始化形参而不是替换形参
4.举例
写一个求和的函数,需要返回求和的值就用int型,如果只需要输出,那么用void函数也行,在函数里直接输出
int型:
函数部分:
int sum(int x, int y) {
int sum=x+y;
return sum;
}
或
int sum(int x, int y) {
return x + y;
}
代码实现:
#include <stdio.h>
int sum(int x, int y);
int main() {
int x, y;
scanf("%d%d", &x, &y);
printf("%d", sum(x, y));
return 0;
}
int sum(int x, int y) {
return x + y;
}
执行结果:
void型:
函数部分:
void sum(int x, int y) {
printf(“%d”, x + y);
}
代码实现:
#include <stdio.h>
void sum(int x, int y);
int main() {
int x, y;
scanf("%d%d", &x, &y);
sum(x, y);
return 0;
}
void sum(int x, int y) {
printf("%d", x + y);
}
执行结果:
需要注意的是int型的函数会返回值,所以就把它当做一个值赋给别人或输出,而void型就直接当做单独的语句后面加分号执行
4.函数的声明
main函数是执行代码的入口,执行到我们定义的函数,上面却没有声明,那么就会不认识它。就像我们在使用库函数,也要声明math.h头文件一样。
声明格式:
函数返回类型 函数名(这里要和定义函数时保持一致);
5.小试牛刀
1.题目
输入某班学生C语言课程的成绩(具体人数由用户键盘输入),用函数编程统计优秀人数(分数大于80分)。
2.代码
#include "stdio.h"
int count(int b[100], int c);
int main() {
int n, s;
int stu[100];
![img](https://img-blog.csdnimg.cn/img_convert/cd49e7ce0898b909e0b38baff6bd1057.png)
![img](https://img-blog.csdnimg.cn/img_convert/6fb8fba4a689802d626000a63059b744.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**