课程
/后端开发
/C
/Linux C语言指针与内存
不太明白(*pquadrate)后面为啥还有个(int a) ??
2015-07-28
源自:Linux C语言指针与内存 4-5
正在回答
这是函数指针声明。
这是将pquadrate声明为函数指针,它指向的是有一个int型参数,返回值为int的函数。这语句同时将pquadrate初始化为quadrate的地址(显然quadrate应该是个函数名)。
一步一步讲这个声明:
这语句声明的是pquadrate变量,前面有个*,而且是用小括号和变量名括起来的(*pquadrate),表明这个变量名优先和*结合。声明变量时前面有*就代表这个变量是指针,所以pquadrate是个指针。那它指向什么呢?
接着看,后面有小括号,前面有类型,表明是个函数。参数就是int a,返回值是int型。所以pquadrate是指向这样的函数的指针。
帅踢锅 提问者
onemoo 回复 帅踢锅 提问者
厉害了,大神呀
厉害 。。。
原来如此
谢谢你的解释!
举报
指针-C语言的核心,代领大家对c语言有更加深刻的理解
2 回答int(*pquadrate)(int a) = &quadrate;这个代码段的详解!
2 回答如果int a = 3; 那么int *p=&a;之后 是不是*p=3,p=&a 呢?
1 回答#include<stdio.h> int main()
1 回答int内存地址分配问题?
1 回答*p=&a;在这里意思就是把p指向a所在的内存单元吗?