7-1 霸道总裁如何指挥公司:函数是什么
本节编程练习不计算学习进度,请电脑登录imooc.com操作

霸道总裁如何指挥公司:函数是什么

现在,小慕是一家市值百亿的科技公司的老板,旗下产品无数,管着几千个程序员,还管着人力资源,当然,最重要的,还管着财务。每天都很忙,却可以把公司管理得井井有条。他是怎么做的呢?

公司事务繁杂,雇佣了很多员工来帮助公司运转。例如,公司需要为员工缴纳五险一金,而作为老板,显然不用带着每一个员工的资料去人社局办理,只需要告诉 HR 部门,让他们去办理就行了。老板不需要知道办理社保的具体细节,因为具体细节 HR 部门的同事更擅长,老板所做的仅仅是发出命令就可以了。

回到 C++ 里面来,在 C++ 中,也有很多需要用到这种模式的场景。

例如,我们想要计算两个数的平均值:

#include <stdio.h>

int main(int argc,char **argv)
{
    int a = 10;
    int b = 20;
    int c = a + b / 2;

    return 0;
}

可以看到,计算平均数是一个可以进行单独模块化的部分,就像是公司的 HR 部门。在 C++ 中我们通过函数将这个部分做成一个模块。

#include <stdio.h>

//定义函数
int avg(int a, int b)
{
    return a + b / 2;
}

int main(int argc,char **argv)
{
    int a = 10;
    int b = 20;
    int c = avg(a, b); //函数调用

    return 0;
}

上面的代码中,我们就把计算平均数做成了一个函数,avg函数,在使用的时候,只需要直接调用这个函数就行了,而不用去了解平均数的计算方式。

在上面的例子中,我们把 avg 函数定义到了 main 函数之前,在使用的时候没有出现问题。

而有的同学想把avg函数写到 main 之后,例如这样:

#include <stdio.h>

int main(int argc,char **argv)
{
    int a = 10;
    int b = 20;
    int c = avg(a, b);

    return 0;
}


int avg(int a, int b)
{
    return a + b / 2;
}

这样修改之后,发现程序没法运行了。这是因为在 C++ 中,函数要想使用,必须要先声明。所以我们可以在调用之后实现函数体,但是必须在调用之前声明

#include <stdio.h>

int avg(int a, int b); //函数声明

int main(int argc,char **argv)
{
    int a = 10;
    int b = 20;
    int c = avg(a, b);

    return 0;
}

int avg(int a, int b)
{
    return a + b / 2;
}

我们现在将函数分成两个部分来说明,分别是函数头,函数体

函数头:

 

函数体:

c++ 允许函数为调用者返回一个量,就像是老板安排某一个员工去办某一件事,老板希望员工办完这件事之后,给一个结果。而在这个求平均数的例子中,返回值就是求平均数之后的结果。

任务

  1.  
下一节