C++ primer plus 第七章、第八章

第七章1
第七章2
第七章复习
第八章1
第八章2
第八章3
要使用C++函数必须完成以下工作:

  • 提供函数定义
  • 提供函数原型
  • 调用函数

函数如何返回值的

函数通过将返回值复制到指定的CPU寄存器或内存单元中将其返回,随后调用程序查看该内存单元,返回函数和调用函数必须就该内存单元中存储的数据类型的类型达成一致,函数原型将返回值类型告知调用程序,而函数定义命令被调用函数应该返回什么类型的数据
在这里插入图片描述

函数原型

在这里插入图片描述
在这里插入图片描述

原型(prototype)描述了函数到编译器的接口,也就是说,他将函数返回值的类型以及参数的类型和数量告诉编译器
函数原型是一条语句,因此必须以分号结尾
例如:

double cube(double x);

在函数原型中可以包括变量名,也可以不包括变量名

函数和数组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数和二维数组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

int (*ar2)[4];  //声明一个指向由4个int组成的数组的指针
int *ar2[4];    //声明一个由4个指向int的指针构成的数组

函数与结构

在这里插入图片描述
传递结构地址
在这里插入图片描述

递归

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
包含多个调用的递归
在这里插入图片描述
在这里插入图片描述

函数指针

获取函数地址

只需使用函数名(后面不加参数)即可
如:think()是一个函数, process(), thought() 都是函数
process(think) // 把think函数的地址传递给process函数
thought( think() ) // 把think函数的返回值传递给thought函数

声明函数指针

double pam(int);   //函数原型,声明了一个 叫做 pam的函数
下面的语句和上面的语句效果是相同的
double (*pf)(int);   // pf就是函数指针

double (*pf)(int);   //pf points to a function that returns double
double *pf(int);     //pf() is  a function that returns a pointer-to-double
double pam(int);
double (*pf)(int);
pf = pam;
void estimate(int a,double pam);
void estimate(int a,double (*pf)(int));

使用指针调用函数

double pam(int);
double (*pf)(int);
pf = pam;
double x = pam(4);
double y = (*pf)(5);
double z = pf(6);

*目前C++中认为(pf)() 和 pf() 和 pam() 这三种函数调用方式是相同的

猜你喜欢

转载自blog.csdn.net/weixin_44972129/article/details/108953452