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

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

晚风撩人 发布于 2016-10-23 字数 77 浏览 1280 回复 5

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

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

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

评论(5

灵芸 2017-10-24 5 楼

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

 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 4 楼

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

归属感 2017-01-25 3 楼

函数原型大概是

int (*p)(int a){}

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

int (*p)(100)

是函数的调用。

偏爱自由 2017-01-10 2 楼

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

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

泛泛之交 2016-12-29 1 楼

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