好吧, 我们假设你知道C中的指针是什么意思。那么我们如何在C中创建一个指向整数的指针?
嗯..这很简单..
int * ptrInteger;
/*We have put a * operator between int and ptrInteger to create a pointer.*/
这里ptrInteger是指向整数的指针。如果你了解这一点, 那么从逻辑上讲, 我们在声明指向函数的指针时应该没有任何问题problem
那么, 让我们首先看看..我们如何声明一个函数?例如,
int foo(int);
foo是一个返回int并接受一个int类型参数的函数。因此, 正如一个逻辑上的人会想到的那样, 通过在int和foo(int)之间放置一个*运算符应该创建一个指向函数的指针, 即
int * foo(int);
但是Oops..C运算符优先级在这里也起作用。因此, 在这种情况下, operator()将优先于运算符*。上面的声明将意味着–一个函数foo, 它的一个参数为int类型, 返回值为int *, 即整数指针。所以它做了一些我们不想做的事情。 ??
因此, 作为下一步的逻辑步骤, 我们必须以某种方式将运算符*与foo绑定。为此, 我们将使用()运算符更改C运算符的默认优先级。
int (*foo)(int);
而已。这里*运算符与foo一起使用, foo是一个函数名。它做了我们想要做的事情。
【如何声明一个指向函数的指针()】因此, 这并不像我们早先想的那么困难!
推荐阅读
- 如何设计一个很小的URL或URL缩短器()
- 如何在C#中创建线程(解析和详细代码)
- 如何在C#中创建ArrayList(用法示例)
- 如何使用Kotlin在Android Studio中创建项目()
- 如何在Google AMP中创建Floating amp-addthis()
- 如何在Tableau中创建故事()
- 10个查找和删除重复文件的工具
- 简单判断是否存在丢包之ping+tracert+mtr
- 关于服务器开启ipv6服务,导致无法访问谷歌