4个回答
推荐于2017-11-22
展开全部
*作为定义的时候,是一个左结合操作符,优先跟其左边的描述相结合
int * : 整型指针
(*p) : 用括号调整优先级,强迫其与p作结合,表示p是一个指针类型(否则此处p应与"()"结合作为一个函数,而该"*"则应跟左边的"int *"结合作为"int **"整型指针的指针)
如此,相应的我们就很容易解释其他的如:
int * 整型指针
int ** 整型指针的指针
int * a[n] 整型指针数组
int (*a)[n] 整型数组的指针
int (*a)(int) 需求整型参数且返回整型数的函数指针
...
搞懂了符号优先级就很容易理解了,另外有些符号优先级是跟编译器有关的,即标准中未定义行为(UNDEFINED BEHAVIOR),尽量不要在程序中使用这种语法。
int * : 整型指针
(*p) : 用括号调整优先级,强迫其与p作结合,表示p是一个指针类型(否则此处p应与"()"结合作为一个函数,而该"*"则应跟左边的"int *"结合作为"int **"整型指针的指针)
如此,相应的我们就很容易解释其他的如:
int * 整型指针
int ** 整型指针的指针
int * a[n] 整型指针数组
int (*a)[n] 整型数组的指针
int (*a)(int) 需求整型参数且返回整型数的函数指针
...
搞懂了符号优先级就很容易理解了,另外有些符号优先级是跟编译器有关的,即标准中未定义行为(UNDEFINED BEHAVIOR),尽量不要在程序中使用这种语法。
展开全部
int* (*p)(); //声明了一个指向形式为:int* func()的函数指针,例如:
int* func()
{
.....
}
p=func; //p指向函数func
然后就可以使用指针p来调用func函数了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这类东东都可 按运算符优先级来看
首先,括号内优先级最高,*p 说明 p 是个指针
再次, (*p)() 说明p是指向函数的指针
返回类型为 int *
首先,括号内优先级最高,*p 说明 p 是个指针
再次, (*p)() 说明p是指向函数的指针
返回类型为 int *
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-01-15 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
向TA提问 私信TA
知道合伙人教育行家
采纳数:17564
获赞数:65159
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……
向TA提问 私信TA
关注
展开全部
p是一个函数指针,指向函数,返回值是int *
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询