好吧,我们假设您知道 C 中的指针是什么意思。那么我们如何在 C 中创建指向整数的指针呢?
这里 ptrInteger 是一个指向整数的指针。如果您理解这一点,那么从逻辑上讲,我们在声明指向函数的指针时应该没有任何问题
那么让我们先看看..我们如何声明一个函数?例如,
这里 foo 是一个函数,它返回 int 并接受一个 int 类型的参数。所以一个逻辑人会认为,通过在 int 和 foo(int) 之间放置一个 * 运算符应该创建一个指向函数的指针,即
但是 C 运算符优先级在这里也起作用..所以在这种情况下,运算符 () 将优先于运算符 *。上面的声明意味着一个函数 foo 具有一个 int 类型的参数和 int * 的返回值,即整数指针。所以它做了一些我们不想做的事情。
因此,作为下一个合乎逻辑的步骤,我们必须以某种方式将 operator * 与 foo 绑定。为此,我们将使用 () 运算符更改 C 运算符的默认优先级。
这里 * 运算符带有 foo ,它是一个函数名。它做了我们想做的事情。
所以这并不像我们之前想象的那么难!
int * ptrInteger; /*We have put a * operator between int
and ptrInteger to create a pointer.*/
int foo(int);
int * foo(int);
int (*foo)(int);