设有如下定义:int (*ptr)( );则以下叙述中正确的是
A.ptr是指向一维组数的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针;该函数返回一个int型数据未知吖D.ptr是一个函数名;该函数的返回值...
A. ptr 是指向一维组数的指针变量
B. ptr 是指向int 型数据的指针变量
C. ptr 是指向函数的指针 ;该函数返回一个int 型数据 未知吖
D. ptr 是一个函数名 ;该函数的返回值是指向int 型数据的指针
求分析 展开
B. ptr 是指向int 型数据的指针变量
C. ptr 是指向函数的指针 ;该函数返回一个int 型数据 未知吖
D. ptr 是一个函数名 ;该函数的返回值是指向int 型数据的指针
求分析 展开
8个回答
展开全部
C
原理:
每个C变量声明都具有两个部分:一个类型和一组具有特定格式的、期望用来对该类型求值的表达式。最简单的表达式就是一个变量:
float f, g;
说明表达式f和g在求值的时候具有类型float。由于待求值的是表达式,因此可以自由地使用圆括号:
float ((f));
这表示((f))求值为float并且因此,通过推断,f也是一个float。
同样的逻辑用在函数和指针类型。例如:
float ff();
表示表达式ff()是一个float,因此ff是一个返回一个float的函数。类似地,
float *pf;
表示*pf是一个float并且因此pf是一个指向一个float的指针。
这些形式的组合声明对表达式是一样的。因此,
float *g(), (*h)();
表示*g()和(*h)()都是float表达式。由于()比*绑定得更紧密,*g()和*(g())表示同样的东西:g是一个返回指float指针的函数,而h是一个指向返回float的函数的指针。
原理:
每个C变量声明都具有两个部分:一个类型和一组具有特定格式的、期望用来对该类型求值的表达式。最简单的表达式就是一个变量:
float f, g;
说明表达式f和g在求值的时候具有类型float。由于待求值的是表达式,因此可以自由地使用圆括号:
float ((f));
这表示((f))求值为float并且因此,通过推断,f也是一个float。
同样的逻辑用在函数和指针类型。例如:
float ff();
表示表达式ff()是一个float,因此ff是一个返回一个float的函数。类似地,
float *pf;
表示*pf是一个float并且因此pf是一个指向一个float的指针。
这些形式的组合声明对表达式是一样的。因此,
float *g(), (*h)();
表示*g()和(*h)()都是float表达式。由于()比*绑定得更紧密,*g()和*(g())表示同样的东西:g是一个返回指float指针的函数,而h是一个指向返回float的函数的指针。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询