利用计算机解决问题的常用方法是,首先把比较复杂的问题分解为若干个相对简单的子问题;然后分别求解。如果某个子问题已经有了解决方案,就直接使用这一“预制件”来解决该问题;否则,需要设计新的“预制件”。“预制件”可用于解决某个子问题,也可以用于解决包含相同子问题的其他问题。在程序设计中,这种方法称为“模块化”的程序设计方法。
C语言程序中的“预制件”,也称为一个,模块。函数是实现模块化程序设计的重要机制。
这篇文章主要介绍函数的定义、函数的值和函数的调用等内容。
目录
1.函数的定义
程序设计语言中函数的概念来源于数学中的函数。在数学中可以定义函数,例如:定义⼀次函数 y=kx+b,其中x是自变量,函数y的值取决于x的值是多少。在C语言中,也是先定义函数……类似于数学中的函数定义,然后再调用该函数……类似于数学中计算某个函数的某个特定值。
函数是C语言程序的基本组成成分。编写程序的主要工作,实际上就是编写各个函数。根据不同的需要,在之前文章中已经定义若干个main函数。
一个函数的定义包括两部分,即函数头部的定义和函数体的定义。
1.1函数头部
定义函数头部的一般形式为:
数据类型 函数名 (形参列表)
其中,数据类型规定了函数的返回值类型;函数名是一个合格的标识符;形参形参列表是由逗号分隔的变量声明。函数头部的形参列表可以为空,即形参列表不包括任何参数,此类函数称为无参函数。函数头部的形参列表也可以包括一个或多个参数,此类函数称为有参函数。
参数列表的一般形式为:
数据类型 参数名,数据类型 参数名,数据类型 参数名,…,数据类型 参数名
为了节省存储空间,编译器在定义函数时通常不为函数分配存储空间,在函数调用时才进行内存分配。(和那些我们自定义的数据类型同理)
在函数头部部分,分别定义了函数的类型、函数的名字、形参列表。该部分定义的是函数的基本特征,是用函数使用者(包括函数定义者)必须遵循的标准,也称为“接口”。其中:函数的数据类型指的是函数该函数计算结果的数据类型,也就是函数返回值的数据类型。而函数返回值的数据类型,可以是任意一种数据类型(例如int、float等),也可以是空类型“void”。
注意:
①定义无参函数时,函数名后面的圆括号不能省略。
②定义有参函数时,如果包括多个参数,参数之