C++——函数(一)

前面我已经写过和函数有关的博客( C++——数学函数 )。

函数,也叫作方法,它的作用是定义可重用的代码,并组织和简化这些代码。

所谓重用,就是重复使用的意思。在写代码时候,很多代码我们会重复使用到。比如在一个计算器程序中,常见的操作的有加减乘除等运算。如果是在之前,相加的数改变,我们就要改变源代码,而且如果做多次加法,我们就需要写相似的程序很多次。但是将加法的程序逻辑封装到函数以后,一次的加法调用函数即可。

#include <iostream>

using namespace std;

int main()
{
    //初始化sum
    int sum = 0;

    //计算1~10的整数之和
    for (int i = 1; i <= 10; i++) {
        sum += i;
    }
    cout << "Sum from 1 to 10 is " << sum << endl;

    //计算11~20的整数之和
    sum = 0;
    for (int i = 11; i <= 20; i++) {
        sum += i;
    }
    cout << "Sum from 11 to 20 is " << sum << endl;

    //计算21~30的整数之和
    sum = 0;
    for (int i = 21; i <= 30; i++) {
        sum += i;
    }
    cout << "Sum from 21 to 30 is " << sum << endl;

    return 0;
}

可以看到,相似的代码我们写了三次。再看下面的代码

#include <iostream>

using namespace std;

//将这段相似的代码用函数封装起来
void sum (int startNumber, int endNumber) {
    int sum = 0;

    //计算startNumber~endNumber的整数之和
    for (int i = startNumber; i <= endNumber; i++) {
        sum += i;
    }

    cout << "Sum from " << startNumber << " to " << endNumber << " is " << sum << endl;
}

int main()
{
    //1~10的所有整数之和
    sum(1, 10);

    //11~20的所有整数之和
    sum(11, 20);

    //21~30的所有整数之和
    sum(21, 30);

    return 0;
}

两段代码实现的功能完全一样。但是,从修改难易的角度看,对于第二段代码,如果我们要更改数字的范围,那么只改动两个参数即可,如果要改变实现的功能(如变成每隔一个数相加),那么我们只修改一次函数内部的实现就可以了。而第一段代码则要改很多东西,如果忘记改动某处,就会造成错误。函数的好处可见一斑。

函数语法格式

 定义函数的语法如下:

returnValueType functionName(list of parameters) {
    //Function body
}
  • returnValueType是返回值类型,它主要分为两类:空类型(void),有返回值类型。void可以参考上面的代码,就是没有return语句,只执行一系列操作的返回值类型;而有返回值的类型的函数体必须要有return语句,return 后面跟与returnValueType同类型的数据,此类型可以包括基本数据类型(int, double, bool……)和抽象数据类型(struct, union……)。
  • functionName是函数名,用于标识不同的函数
  • list of parameters是参数列表,这部分用来把实参传递到形参(实参是实际存在的,要往函数中传入的参数,如之前代码的1,10,11,20等,形参是函数定义时括号里定义的参数,用来接收实参,如之前代码的startNumber和endNumber)
  • 花括号{}之间的部分是函数体,是函数的具体实现和主体。要注意,这部分一般要有缩进(空4格)
  • 函数名和参数列表称为函数签名,functionName(list of parameters) 部分
  • 返回值类型和函数签名称作函数头,即 returnValueType functionName(list of parameters) 部分

这时候不难发现,我们经常见到的int main() {...}就是一个函数。main函数的返回值是int类型,所以要在最后return 0; 0表示程序成功执行。main函数是系统函数,是程序的入口,系统只会执行main函数里的代码。如果在你的程序中没有main函数,只有一些其他简单的函数,那么你的程序将无法执行。

函数调用

调用函数的方式很简单,使用函数名()即可。参加上面的代码。

唯一要注意的就是,C++的函数在使用之前必须声明。也就是说,函数要么写在main函数前面,要么先声明,然后在main函数后面写。

第一种

#include <iostream>

using namespace std;

//在main函数之前实现
void function () {
    //function body
}

int main()
{
//执行三次function函数
    function ();
    function ();
    function ();

    return 0;
}

第二种

#include <iostream>

using namespace std;

//在main函数之前声明,这部分叫做函数原型
void function ();

int main()
{
//执行三次function函数
    function ();
    function ();
    function ();

    return 0;
}

//在main之后实现
void function () {
    //function body
}

猜你喜欢

转载自www.cnblogs.com/bwjblogs/p/12634032.html