往期传送门:
《C++ Primer Plus 第六版 中文版》的研读与学习(八)
《C++ Primer Plus 第六版 中文版》的研读与学习(七)
《C++ Primer Plus 第六版 中文版》的研读与学习(六)
《C++ Primer Plus 第六版 中文版》的研读与学习(五)
《C++ Primer Plus 第六版 中文版》的研读与学习(四)
《C++ Primer Plus 第六版 中文版》的研读与学习(三)
《C++ Primer Plus 第六版 中文版》的研读与学习(二)
《C++ Primer Plus 第六版 中文版》的研读与学习(一)
上期我们以sqrt()
函数为例,讲了一些有关函数的内容,今天我们继续来探讨函数的有关知识。
在库中,定义有计算幂的函数pow()
。我们来看看该函数的用法。
首先,我们看看该函数的原型:
double pow(double , double);
可以看出,该函数有两个双精度类型的参数,并且返回一个双精度的值。例如:
#include <iostream>
#include <cmath>
int main()
{
using namespace std;
double base,exp,power;
cin >> base >> exp; // 连续输入
power = pow(base,exp);
cout << power << endl;
}
运行此程序,键盘输入2 3
,即可输出8
(2的3次幂)。
当然,C++中也存在着不接受任何参数的函数(零参函数),例如rand()
函数,可以自动返回一个整型随机数,其原型如下:
int rand(void);
当然,也可以选择隐式的零参声明:
int rand();
在C++中,无论函数是否有参数,调用时都需要加上括号,我们举例如下:
#include <iostream>
#include <cstdlib>
int main()
{
using namespace std;
int guess = rand();
cout << guess << endl;
}
如果我们运行这个程序,会发现,程序始终输出41,而并非随机的正整数。这就涉及到rand()
函数汇总种子seed
的概念。也就是说,计算机中的随机数其实是伪随机数,rand()
函数的函数体如下:
int rand()
{
static int seed; // static表示静态变量
return A*seed+B*n;
// 其中,A、B、n都是常量,系统一般默认seed=1
}
因此,我们需要对seed
进行定义。在C++中,我们使用srand()
函数:
void srand(int a)
{
seed = a;
}
当然,随机数的生成通常需要用到C++的循环结构,我们这里只是简单介绍一下,详细的内容我们会在循环的学习中讲到。