1、问: int * fun() === int (*fun)()?
答:不相等。int * fun(),返回值是整型指针;右边 是一个函数指针,返回整型值;
2、问:假设以字符串作为函数参数,有几种形式?
答:1、string ; 2、char[]; 3、char *
3、问:如何声明一个指针指向 const double * f1(const double *,int n)?
答:假定指针名为pf,那么将f1替换为"(*pf)",即const double *(*pf)(const double *,int n);
初始化 pf=f1,也可以在声明的时候直接初始化。
那么为什么不是pf=&f1呢?因为函数f1是对象(这里跟类的对象不是一回事),f1就是地址,&f1那就是地址的地址。
4、接着第3问:cout<<(*pf)(x,10)/*地址*/<<*(*pf)(x,10)/*返回值*/<<endl
与
cout<<pf(x,10)/*地址*/<<*pf(x,10)/*返回值*/<<endl一样吗?
答:一样!!!因为pf和"(*pf)"(为什么这里加一个括号,请参考1),都是表f1的地址。
好像很迷惑!!引用一段翻译原文