设有如下定义:int (*ptr)( );则以下叙述中正确的是

A.ptr是指向一维组数的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针;该函数返回一个int型数据未知吖D.ptr是一个函数名;该函数的返回值... A. ptr 是指向一维组数的指针变量
B. ptr 是指向int 型数据的指针变量
C. ptr 是指向函数的指针 ;该函数返回一个int 型数据 未知吖
D. ptr 是一个函数名 ;该函数的返回值是指向int 型数据的指针
求分析
展开
 我来答
帐号已注销
2020-08-03 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:166万
展开全部

C。

ptr函数返回一个int 型数据 //这个才是正确的,理由是int fun();显然是一个函数说明,fun换为(*ptr),则ptr就是指向函数的指针了。

int (*ptr)[m] ptr是一个指向m长度的线性内存空间,即m大小的一维数组

int(*ptr)() ptr是一个返回值为int ,参数列表为空的函数指针类型。

例如,int *p,先根据优先级,等效于*(p),所以p本质上是一个有三个元素的数组;那么数组的每个元素是一个指针;那指针指向是指向一个int型的数据;所以整理一下就是p是一个有三个指向int数据的指针的数组,本质上就是一个数组。

扩展资料:

int func(int x); /* 声明一个函数 */

int (*f) (int x); /* 声明一个函数指针 */

f=func; /* 将func函数的首地址赋给指针f */

ptr是指向函数的指针变量,所以可把函数max()赋给ptr作为ptr的值,即把max()的入口地址赋给ptr,以后就可以用ptr来调用该函数,实际上ptr和max都指向同一个入口地址,不同就是ptr是一个指针变量,不像函数名称那样是死的,它可以指向任何函数,就看你想怎么做了。

参考资料来源:百度百科-函数指针

sun_siliang
推荐于2018-03-10 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4622万
展开全部
C. ptr 是指向函数的指针 ;该函数返回一个int 型数据 //这个才是正确的,理由是int fun();显然是一个函数说明,fun换为(*ptr),则ptr就是指向函数的指针了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liufashuai
2011-08-12 · TA获得超过605个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:264万
展开全部
选择C
我们先从一步一步的分析,
1,ptr和*最近且在()里面一次运算优先级最高,从这里可以看出ptr是一个指针
2,接着我们出(),把*ptr计做x,则可以看成是int x(),我们很容易看出这是一个函数
而且这个函数没有参数,有一个int类型的返回值

结合上述两点,我们知道ptr是一个指向函数的指针,它指向的函数无参,有一个int类型的返回值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ROYTOTO
2011-08-12 · TA获得超过732个赞
知道小有建树答主
回答量:532
采纳率:0%
帮助的人:368万
展开全部
明显选C啊,这是标准的函数指针的定义方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huiqian613
2011-08-12
知道答主
回答量:3
采纳率:0%
帮助的人:3.4万
展开全部
D. ptr 是一个函数名 ;该函数的返回值是指向int 型数据的指针

分析:
排除法
A数组的表示方法是中括号。,故不正确
B 指向int型数据的指针变量是 int *ptr
C ptr是指向函数的指针。那函数呢?函数必有函数名对吧。找不到。故不正确
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 5条折叠回答
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式