C++-int (*p)(100);

发布于 2016-10-23 04:37:08 字数 48 浏览 1401 评论 5

这个表达式是什么意思?求教
出自深度探索C++对象模型1.2节,着实困惑

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

灵芸 2017-10-24 12:25:30

那个是一个函数调用,不过

 int (*pf)(1024);

这样写始终是无法编过的,改成这样就好了

 (int) (*pf)(1024);

应该是漏了一个括号吧,测试代码如下:

 int fun(int n)
{
return n;
}

int main()
{
typedef int (*FUN) (int);
FUN f1 = fun; // f1 是函数指针
f1(1024);

FUN *pF = &f1; // pF 是一个指向函数指针的指针

(int)(*pF)(2048);
return 0;
}

瑾兮 2017-06-24 03:11:38

p指针指向一个整型地址块100

归属感 2017-01-25 21:45:38

函数原型大概是

int (*p)(int a){}

,p是一个指针,指向一个返回值是int的函数。

int (*p)(100)

是函数的调用。

偏爱自由 2017-01-10 18:11:02

我觉得没这个语法,是int (*p)[100]印错了么
即使要初始化成100也应该是int *p(100)这么写的。因为C++不允许隐含指针转换,这个肯定编译不通过。

int (*p)(100)从语义上来说,是从
int A(100)引申来;
也就是说,是声明一个指针,使其指向的值初始化为100。这种事情怎么可能实现?还没给p分配内存空间呢。

泛泛之交 2016-12-29 23:05:17

大概是
声明一个int*的变量p, 它的初始化值为100
不过这句在大多我现在的编译器上都有错误,所以不确定具体在你的地方是什么。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文