在学习C的过程中,我试图确切地了解这行代码是什么。
int (*f) (float *)
我知道第一部分是一个指向f的int的指针,但是第二部分是我不确定的。
是否将此分类为指向名为f的int的指针,该类型转换为浮点指针
要么
这将是一个名为f的指针,该指针指向带有指针参数的函数。
如果有人可以提供帮助并可能解释两者之间的区别或原因,那将是很棒的,因为我在理解这个概念时遇到了一些麻烦。
谢谢!
最佳答案
该行将f
声明为指向函数的指针,该函数接受float *
作为其参数并返回int
。
该声明看似棘手,但它仅遵循C的规则。
int *f(float *);
然后,似乎
f
是一个返回int *
的函数。因此,必须在*f
周围使用括号来强制正确的优先级。关于c - 将指针强制转换为浮点数或使用指针参数指向函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37197239/