int (*d)(int *) = foo,这部分代码是做什么的?
int (*d)(int *) = foo, what does this part of the code do?
int foo (int x) {
int (*d)(int *) = foo; //what is the meaning of this line?
...
}
这是我学校的一个老练习题,但我找不到解决方案。
是不是把变量初始化成函数?
这条记录
int (*d)(int *) = foo;
是函数指针 d
的声明,该函数指针指向具有 return 类型 int
和一个类型 int *
的参数的函数。该指针由函数地址 foo
初始化(函数指示符隐式转换为指向它的指针)。
注意函数 foo
应该声明为
int foo (int *x) {
或者指针应该声明为
int (*d)(int ) = foo;
否则在此声明中
int (*d)(int *) = foo;
使用了不兼容的指针类型。
据我所知,a
声明与您的问题无关。 int (*d)(int *)
定义一个指针 d
指向一个接受 int *
和 returns 和 int
的函数。 = foo
设置 d
等于 foo
的地址。
int foo (int x) {
int (*d)(int *) = foo; //what is the meaning of this line?
...
}
这是我学校的一个老练习题,但我找不到解决方案。 是不是把变量初始化成函数?
这条记录
int (*d)(int *) = foo;
是函数指针 d
的声明,该函数指针指向具有 return 类型 int
和一个类型 int *
的参数的函数。该指针由函数地址 foo
初始化(函数指示符隐式转换为指向它的指针)。
注意函数 foo
应该声明为
int foo (int *x) {
或者指针应该声明为
int (*d)(int ) = foo;
否则在此声明中
int (*d)(int *) = foo;
使用了不兼容的指针类型。
据我所知,a
声明与您的问题无关。 int (*d)(int *)
定义一个指针 d
指向一个接受 int *
和 returns 和 int
的函数。 = foo
设置 d
等于 foo
的地址。