C语言之函数

简介: 本文主要写了函数的意义,如何定义函数,如何调用函数等

函数

1.说明
函数分为自定义函数和库函数,库函数就比如我们前面所说的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;
}

执行结果:
image.png

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);
}

执行结果:
image.png

需要注意的是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];
    printf("请输入学生总人数:");
    scanf("%d", &n);
    printf("请输入成绩:\n");
 
    for (int i = 0; i < n; i++) {
        scanf("%d", &stu[i]);
    }
 
    s = count(stu, n);
    printf("优秀人数为:%d\n", s);
    return 0;
}
 
int count(int b[100], int c) {
    int t = 0;
 
    for (int i = 0; i < c; i++) {
        if (b[i] >= 80) {
            t++;
        }
    }
 
    return t;
}

3.执行结果
image.png

相关文章
|
5天前
|
存储 C语言
【C语言函数】static和extern关键字修饰
【C语言函数】static和extern关键字修饰
|
6天前
|
C语言 C++
|
14天前
|
机器学习/深度学习 C语言
九/十:《初学C语言》— 扫雷游戏实现和函数递归基础
【8月更文挑战第5天】本篇文章用C语言采用多文件编写实现了一个基础的扫雷游戏(附源码),并讲解了关于函数递归的基础概念及其相对应的习题练习(附源码)
29 1
九/十:《初学C语言》— 扫雷游戏实现和函数递归基础
|
16天前
|
存储 编译器 程序员
八:《初学C语言》— 函数的基本概念
【8月更文挑战第3天】本篇文章详细讲解了库函数与自定义函数的区别、函数的嵌套调用及链式访问、函数的声明和定义、static和extern等基础知识
17 1
八:《初学C语言》— 函数的基本概念
|
3天前
|
测试技术 C语言
C语言中的void函数
C语言中的void函数
|
3天前
|
存储 安全 编译器
C语言中的scanf函数
C语言中的scanf函数
|
3天前
|
存储 搜索推荐 C语言
C语言中的指针函数:深入探索与应用
C语言中的指针函数:深入探索与应用
|
3天前
|
C语言
C语言中的无参函数
C语言中的无参函数
|
5天前
|
C语言
C语言------函数
这篇文章是C语言中函数的实训,涵盖了函数的定义、调用、自定义函数编写以及递归调用方法,并通过多个示例代码演示了如何实现累加、阶乘、斐波那契数列、特殊数列求和等函数功能。
C语言------函数
|
6天前
|
编译器 C语言
【C语言小知识】ctype.h系列的字符函数
【C语言小知识】ctype.h系列的字符函数