一篇文章带你入门C语言函数

一、什么是函数

        在 C 语言中,函数是一段具有特定功能的可重复使用的代码块。它可以接收输入参数,进行一系列的操作,并可以返回一个结果。

        当代码的行数较多时,经常会出现几乎重复的代码,为了避免了代码的重复,我们会将这部分拿出来,封装成函数。一次编写的函数可以在程序的不同地方多次调用,提高了开发效率。

        在实际开发中,我们会将一个大型程序分解为多个小的、功能单一的函数,每个函数负责完成一个特定的任务。这样可以提高代码的可读性和可维护性,方便团队协作开发。

       即在一个大程序中,会有很多个功能点,我们会在函数中完成这些功能点,一个函数通常完成一个功能,然后在主函数main中进行调用,其实函数也可以理解为一个子程序。

二、函数的类型

        函数就分为两种:库函数与自定义函数。

        库函数是编译器厂商根据ANSI提供的C语言标准给出的一系列函数实现,如printf、scanf等,可以直接调用。

        自定义函数则由自己编写、完成自己所需的功能。需要定义、声明后才能调用。

三、函数的组成
#define _CRT_SECURE_NO_WARNINGS

#include

int add(int a, int b);

int main()
{
	int a = 2;
	int b = 3;
	int sum = add(a, b);
	int e = printf("%d\n", sum);
	printf("%d\n", e);
	return 0;
}

int add(int a, int b)
{
	int c = a + b;
	return c;
}

        在上面的代码中,17~21行是一个自定义的函数,它的定义形式为:

        一篇文章带你入门C语言函数_第1张图片

        我们可以把函数体看作工厂,把参数看作原料。原料通过工厂加工得到产品,参数通过函数体处理得到计算结果。

        这个计算结果,可以返回,也可以不返回。如果你需要返回,就要去return 返回值;。return的返回值的类型,尽量与定义的返回值类型相同。如果不一致,那么系统会自动将返回的值隐式转换为函数的返回值类型。

        什么是返回值?我们调用函数后,给变量赋值,赋的这个值就是返回值。在上面代码的第11行,我们调用函数add,并赋值给变量sum后,得到的值是5。这个5就是函数Add的返回值。

       当然函数也可以没有返回值,此时返回值的类型是void。因为函数一定要有return语句作为函数的结束,没有就会出现编译错误,所以在返回值类型为return的情况下,直接return;即可。没有返回值,就不可以赋值给变量,对参数的处理结果不会直接体现在控制台上。

        无论是自定义函数还是库函数可以有返回值。就如上面代码的第12行,我们将库函数printf的返回值赋值给变量e,将变量e打印出来后得到2,这个2就是函数printf的返回值。

        当然我们调用库函数通常是使用它的功能,而不是它的返回值。

        综上所述,函数的三个核心组成部分就是参数函数体返回值。由主函数输入的参数,通过函数体的处理后,得到一个计算结果。

        这个结果可以通过 “rerturn 返回值;” 的形式返回,然后对变量进行赋值;但是,如果说这个计算结果不需要对变量赋值,也不需要直接体现在控制台上,也可以选择不返回,直接return;。

四、函数的调用

        我们调用函数之前要进行声明。如果函数写在main函数前面,函数的定义即声明,不需要进行额外的声明;如果函数写在main函数后面,则需要一个额外的声明,如上面代码的第5行。声明的格式是——“返回值类型 函数名(参数);”。

        声明后,我们就可以对函数进行调用,调用的格式是——“函数名(参数);”。

        此时我们要知道,函数定义时的参数与函数调用时的参数是不一样的。函数调用时的参数,称为实际参数,即实参;函数定义时定义的参数称为形式参数,即形参。虽然说调用函数时,实参传递给了形参,进入函数进行处理,并且它们的值也一样。但是,它们占据的是两块不一样的内存空间。也就是说,如果我对形参进行操作,实参的值不会受到影响。

        但是如果我传递的实参是数组,那么形参是不会创建新的数组的,形参操作的数组和实参的数组是同一个数组,此时一改全改。

五、函数在实际编程时的使用

        我们在编程的时候,为什么会想到写这个函数的呢?就现在我们在做一个小游戏,你创建了一个main函数,然后第一步是建立一个选择界面,选择开始还是退出。那么这就是你第一个要实现的功能点,此时你就自然而然会想到通过函数去实现。

        就是说为什么会想到写这个函数?因为我在实现我的项目的时候,我需要实现一个功能,而这个功能需要用函数去实现。

你可能感兴趣的:(c语言,开发语言)