第7章 函数
1.C++函数风格
C++的编程风格是将main()放在最前面,因为它通常提供了程序的整体结构。
C++风格需要提供函数原型。
在C++中,不指定参数列表时应使用省略号:
void say_bye{...};
2.获取函数的地址
获取函数的地址很简单:只要使用函数名(后面不跟参数)即可。也就是说,如果think()是一个函数,则think就是该函数的地址。
3.函数指针的声明和调用
下面是一些函数的原型,它们的特征标和返回类型相同:
const double * f1(const double ar[], int n);
const double * f2(const double [], int);
const doubel * f3(const double *, int);
现在声明一个指向f1的指针p1:
const double * (*p1)(const double *, int);
也可以在声明的同时进行初始化:
const double * (*p1)(const double *, int) = f1;
利用指针p1调用f1函数:
cout >> (*p1)(av, 3) >> “:” >> *(*p1)(av, 3) >> endl;
或
cout >> p1(av, 3) >> “:” >> *p1(av, 3) >> endl;
前半部分为一个double值的地址,后半部分为一个double值。
声明一个包含3个元素的同类型的函数指针数组:
const double * (*pa[3])(const double *, int) = {f1, f2, f3};
调用方法:
double x = *pa[0](av, 3);
创建一个指向该数组的指针:
const double *(*(*pd)[3])(const double *, int) = &pa;
调用方法:
double y = *(*pd)[0](av, 3);
或
double z = *(*(*pd)[0])(av, 3);