C++ Tutorials: C++ Language: Program structure: Functions

C++官网参考链接:Functions - C++ Tutorials (cplusplus.com)

功能
函数允许在代码段中构建程序来执行单独的任务。
在C++中,函数是一组有名称的语句,可以从程序的某个点调用这些语句。定义函数最常见的语法是:
type name( parameter1, parameter2, ...) { statements } 

这里: 
- type为函数返回值的类型。
- name是调用函数的标识符。
- parameters(任意数量):每个形参由一个类型后跟一个标识符组成,每个形参与下一个形参之间用逗号分隔。每个形参看起来非常像一个普通变量声明(例如:int x),实际上在函数中充当函数局部的普通变量。形参的目的是允许从调用函数的位置向函数传递实参。
- statements是函数体。它是由大括号{}包围的语句块,指定函数实际的功能。

让我们来看一个例子:

// function example
#include <iostream>
using namespace std;

int addition (int a, int b)
{
  int r;
  r=a+b;
  return r;
}

int main ()
{
  int z;
  z = addition (5,3);
  cout << "The result is " << z;
}

输出:

本程序分为addition和main两大函数。记住,无论它们的定义顺序如何,C++程序总是从调用main函数开始。实际上,main是唯一自动调用的函数,而其他函数中的代码只有在其函数从main(直接或间接)调用时才会执行。
在上面的例子中,main首先声明int类型的变量z,然后执行第一个函数调用:它调用addition。函数的调用遵循与函数声明非常相似的结构。在上面的例子中,对addition的调用可以与前面几行它的定义进行比较:

函数声明中的形参与函数调用中传递的实参有明确的对应关系。该调用将两个值5和3传递给函数;这些对应于为函数addition声明的形参a和b。
在main内部调用该函数时,控制将被传递给函数addition:这里,main的执行将停止,只有在addition函数结束时才会恢复。在调用函数时,两个参数(5和3)的值都被复制到函数内的局部变量整数a和整数b中。
然后,在addition中声明另一个局部变量int r;,并通过表达式r=a+b,将a+b的结果赋给r;在这种情况下,a = 5和b = 3,意味着8被分配给r。
函数中的最后一个语句:
return r;
结束函数addition,并将控制返回到调用函数的位置;在这种情况下:返回到函数main。在这个精确的时刻,程序恢复它在main()上的进程,返回到它被addition调用中断的同一点。另外,因为addition有一个返回类型,所以调用被计算为有一个值,这个值是在结束addition的返回语句中指定的值:在这种特殊情况下,局部变量r的值,在返回语句的时刻,它的值是8。

因此,对addition的调用是一个带有函数返回值的表达式,在这种情况下,该值8被赋给z。就好像整个函数调用(addition(5,3))被它返回的值(即8)取代了。
然后main简单地打印该值通过调用:
cout << "The result is " << z;
一个函数实际上可以在程序中被多次调用,它的实参自然不仅限于字面量: 

// function example
#include <iostream>
using namespace std;

int subtraction (int a, int b)
{
  int r;
  r=a-b;
  return r;
}

int main ()
{
  int x=5, y=3, z;
  z = subtraction(7,2);
  cout << "The first result is " << z << '\n';
  cout << "The second result is " << subtraction(7,2) << '\n';
  cout << "The third result is " << subtraction(x,y) << '\n';
  z= 4 + subtraction(x,y);
  cout << "The fourth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_40186813

你的能量无可限量。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值