我昨天看书看到c++里面有个指向数组的指针,**
```
const double *(*pa[3])(const double *, int) = {f1,f2,f3};
```**
我有点不理解,这个和直接用数组名当指针有什么区别啊,这个指针真的指向的是这一整个数组嘛?
这是三个函数指针的数组。函数指针只能这么定义,没法像数组一样写成int a[3]
这个是定义了3个元素的函数指针数组。
简单示例:
int main()
{
const double *f1(const double *, int);
const double *f2(const double *, int);
const double *f3(const double *, int);
const double *(*pa[3])(const double *, int) = {f1, f2, f3};
double a = 1024;
int b = 123;
for (int i = 0; i < 3; i++)
pa[i](&a, b);
}
const double *f1(const double *a, int b)
{
cout << "f1: " << *a + b << endl;
return a;
}
const double *f2(const double *a, int b)
{
cout << "f2: " << *a - b << endl;
return a;
}
const double *f3(const double *a, int b)
{
cout << "f3: " << *a * b << endl;
return a;
}