double(* fptr)()在梯形规则函数的参数列表中的含义是什么?

时间:2013-05-16 12:41:11

标签: c

我想知道为什么在梯形规则函数的参数列表中使用double (*fptr)()

我知道它意味着双重的文件指针。但为什么我要把空括号括起来?

3 个答案:

答案 0 :(得分:4)

您可能需要尝试http://cdecl.org/来解决此问题:

  

C乱码↔英文

double (*fptr)()
     

将fptr声明为函数返回double的指针

答案 1 :(得分:3)

这并不意味着文件指针为double,f代表 function

一旦你看到如何定义函数,这就变得很明显了:

double myfunc()

如果我现在想要一个指向不带参数的函数的指针并返回一个double,那么它将是

类型
double (*)()

这是您参数的类型。添加名称(fptr)会产生以下结果:

double (*fptr)()

是一个名为fptr的参数(函数指针的缩写),它是一个指向不带参数且返回double的函数的指针。

答案 2 :(得分:1)

它不是文件指针,声明double (*fptr)()表示fptr指向函数的指针,返回double并且不带参数,(空括号表示指向函数的指针

一个例子:假设你有一个像:

这样的函数
double fun(){
  double d = 0.9;
  return d; 
}

然后您可以将fun的地址分配给fptr,如:

fptr = fun;

您可以使用fun()拨打fptr,如:

d = fptr()

d是一些双变量

修改
我觉得你需要知道Pointers To Functions,一般来说,我们定义了函数指针,如:

returntype function (argtype1, argtype2, argtype3)

指向此类函数的相应指针是

returntype (*ptr) (atgtype1, atgtype2, atgtype3);  

注意这里没有空括号,但我使用的是参数类型,其中fptr指向一个函数,就像我在示例中给出的不接受参数的函数。