《C++ Primer Plus 第六版 中文版》的研读与学习(十)

本文详细介绍了C++中用户自定义函数的定义、调用及返回值处理,通过实例讲解了函数原型声明、形参与实参的概念,以及主函数返回值的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

往期传送门:
《C++ Primer Plus 第六版 中文版》的研读与学习(九)
《C++ Primer Plus 第六版 中文版》的研读与学习(八)
《C++ Primer Plus 第六版 中文版》的研读与学习(七)
《C++ Primer Plus 第六版 中文版》的研读与学习(六)
《C++ Primer Plus 第六版 中文版》的研读与学习(五)
《C++ Primer Plus 第六版 中文版》的研读与学习(四)
《C++ Primer Plus 第六版 中文版》的研读与学习(三)
《C++ Primer Plus 第六版 中文版》的研读与学习(二)
《C++ Primer Plus 第六版 中文版》的研读与学习(一)

上一期我们谈到了有关函数的内容,今天我们来讲讲用户自定义的函数。
首先,我们来看这样的一个程序:

#include <iostream>
using namespace std;

void simon(int);  // 函数原型的声明

int main()
{
 simon(3);   // 调用函数
 cout << "Pick an integer: "; 
 int count;
 cin >> count;
 simon(count);   //再次调用函数
 cout << "Done!" << endl;
 return 0; 
}

void simon(int n)   // 函数的定义 
{
 cout << "Simon says touch your toes " << n << " times." << endl;
 //  void类型的函数不需要返回值 
}

其中,与我们之前给出的程序不同,我们将名称空间的编译指令using namespace std;放在了函数体之外,表示本程序中所有的函数都可以直接调用名称空间中的定义。当然,也可以把这条指令分别写在主函数和自定义的函数当中。
同理,我们也可以在函数体之外定义变量,表示程序中任何函数都可以使用这一变量。
接下来,我们看看这个程序的运行结果:

Simon says touch your toes 3 times.
Pick an integer: 99
Simon says touch your toes 99 times.
Done!

在上一期的分享中,我们提到,被调用函数的定义如果在调用的函数之前,则不需要声明函数原型。在本程序中,函数的定义位于主函数之后,因此调用前有必要进行原型声明:

void simon(int);  // 函数原型的声明

接着我们看看函数的定义,一般统一为如下的形式:

type functionname(argumentlist)
{
	statements;
}

在本程序中,simon函数类型为void,即函数没有返回值;形参表(arguementlist)为int n
在调用该函数时,由于函数没有返回值,正确的调用方式为:

simon(3);
simon(count);

错误的调用方式为:

result = simon(3);

由于函数没有返回值,因此无法对变量result进行赋值,编译器将会报错如下:ERROR: void value not ignored as it ought to be

一般地,我们将函数定义时形参表中的参数称为形参,如n;函数调用时实际运算的参数称为实参,如3count

在之前的学习中,我们了解到,C++的主函数也有返回值,那么这样的返回值如何体现呢?主函数的返回值通常直接返回到操作系统。利用UNIX外壳脚本或Windows命令行批处理文件(.bat)都可以设计运行程序,并返回主函数的返回值(也称为退出值),一般地,退出值为0表示运行成功。

我们再来看看用户定义的有返回值的函数:

#include <iostream>
using namespace std;

int stonetolb(int);

int main()
{
 int stone;
 cout << "Enter the weight in stone: ";
 cin >> stone;
 int pounds = stonetolb(stone);
 cout << stone << " stone = " << pounds <<" pounds." <<endl;
 return 0;
}

int stonetolb(int sto)
{
 return 14*sto;
}

程序运行结果:

Enter the weight in stone: 15
15 stone = 210 pounds.

在函数stonetolb()中,包含了函数的所有要素:函数头函数体、函数原型、接收参数、返回值。因此,我们可以将这一函数视为C++的标准函数进行学习。

【番外篇】
我们介绍一下C++中函数与变量的命名规则:

  1. C++中,只能使用大小写英文字母与下划线_进行命名,不能有其他的字符。
  2. C++中,区分字母的大小写,也就是分别由大写/小写字母命名的变量(函数)不是同一变量(函数)。
  3. 变量/函数的命名不能与编译器自带的变量/函数同名。

本期的内容就到此结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值