这个表达式是什么意思?求教出自深度探索C++对象模型1.2节,着实困惑
那个是一个函数调用,不过
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;}
p指针指向一个整型地址块100
函数原型大概是
int (*p)(int a){}
,p是一个指针,指向一个返回值是int的函数。
int (*p)(100)
是函数的调用。
我觉得没这个语法,是int (*p)[100]印错了么即使要初始化成100也应该是int *p(100)这么写的。因为C++不允许隐含指针转换,这个肯定编译不通过。
int (*p)(100)从语义上来说,是从int A(100)引申来;也就是说,是声明一个指针,使其指向的值初始化为100。这种事情怎么可能实现?还没给p分配内存空间呢。
大概是声明一个int*的变量p, 它的初始化值为100不过这句在大多我现在的编译器上都有错误,所以不确定具体在你的地方是什么。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(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;
}
p指针指向一个整型地址块100
函数原型大概是
int (*p)(int a){}
,p是一个指针,指向一个返回值是int的函数。
int (*p)(100)
是函数的调用。
我觉得没这个语法,是int (*p)[100]印错了么
即使要初始化成100也应该是int *p(100)这么写的。因为C++不允许隐含指针转换,这个肯定编译不通过。
int (*p)(100)从语义上来说,是从
int A(100)引申来;
也就是说,是声明一个指针,使其指向的值初始化为100。这种事情怎么可能实现?还没给p分配内存空间呢。
大概是
声明一个int*的变量p, 它的初始化值为100
不过这句在大多我现在的编译器上都有错误,所以不确定具体在你的地方是什么。