C++编程入门 互动版

程序运行流程

我们目前为止才接触过一个函数main(),它是程序的入口函数,也就是运行时,程序总是从main函数开始执行,其他函数则是由main函数或者其他函数调用后才执行的,最后到main函数运行完整个程序就运行完了。程序运行流程如下图所示:

函数概述

函数的定义方法为:

返回类型 函数名(参数列表)
{
    函数体语句
}

1.返回类型必须要有。如果函数没有返回的值,那么返回类型为void。

2.函数名是一个标识符,最好能够“见名知意”:

3.参数表有一个或多个参数组成,多个参数用逗号隔开,也可以没有参数,但“()”不能省

4.函数体中允许无语句,这是叫做空函数。

5.C++程序中可以定义很多函数,这些函数是并列的。不允许在一个函数内定义别的函数,但可以调用别的函数

#include <iostream>
using namespace std;
int main()
{
    int i,j;
    cout<<"请输入两个整数:"<<endl;
    cin>>i>>j;
    int max=i>j?i:j;
    cout<<"max="<<max<<endl;
    return 0;
}

这个程序是输出两个整数中的较大数。我们可以对求较大数的语句进行抽象,做成一个函数,名叫max_int。在main函数中只需要调用max_int,并传递给它两个参数i和j,就可以得到最大值。max_int函数会处理i和j,然后返回一个较大数。现在我们的代码变为:

#include <iostream>
using namespace std;
int max_int(int x,int y)
{
    return x>y?x:y;
}
int main()
{
    int i,j;
    cout<<"请输入两个整数:"<<endl;
    cin>>i>>j;
    int max=max_int(i,j);
    cout<<"max="<<max<<endl;
    return 0;
}

第3到6行是函数max_int的实现。第3行代码:返回值是int类型,函数名是max_int,需要两个整型参数。第5行是函数体的语句。第12行在main函数中调用了max_int函数,并将函数的返回值赋给变量max。

函数的声明

函数的定义和声明是两个完全不同的概念。函数的定义时由语句来描述该函数的功能实现,格式包括函数头和函数体两部分。而函数的声明是在调用该函数之前,说明该函数的类型和所有参数的类型。通俗来讲:函数的定义是写函数是如何实现了某功能,而函数的声明是告诉别的函数有这么一个函数,它需要什么参数,返回什么类型的值。

如果函数的定义在前,调用在后,那么调用之前不用单独声明该函数。例如上例中,第3到6行是函数max_int的实现,第12行才是调用,所以不必去单独声明函数max_int。但是如果将函数max_int的定义放在main函数之后,那么就要在main之前声明函数max_int。

声明的格式为:返回类型 函数名(参数列表);其中参数列表,可以只写参数类型,也可以参数类型后跟参数名。还有最后的分号不能省。

#include <iostream>
using namespace std;
int max_int(int,int);
int main()
{
    int i,j;
    cout<<"请输入两个整数:"<<endl;
    cin>>i>>j;
    int max=max_int(i,j);
    cout<<"max="<<max<<endl;
    return 0;
}
int max_int(int x,int y)
{
    return x>y?x:y;
}

第9行是函数的调用,第13到16行是函数max_int的实现,调用在前必须要进行声明。一般函数的声明放在一系列的include下面:第3行是函数max_int的声明。

在右侧代码框中编写程序:写一个函数求长方形的面积,并在主函数中调用。