C语言中函数指针*p **p 和数组不是很明白,可以解释下麽?

2024-11-06 08:33:39
推荐回答(2个)
回答1:

定义一个指向函数的指针用如下的形式,以上面的test()为例: int (*fp)(int a);//这里就定义了一个指向函数的指针 函数指针不能绝对不能指向不同类型,或者是带不同形参的函数,在定义函数指针的时候我们很容易犯如下的错误。 int *fp(int a);/粗枣改/这里是错误的,因为按照结合性和优先级来看就是先和()结合,然后变成了一个返回整形指针的函数了,而不是函数指针,这一点尤其需要注意! 下面我们来看一个具体的例子: #include #include using namespace std; int test(int a); void main(int argc,char* argv[]) { cout< #include using namespace std; int test(int a); void main(int argc,char* argv[]) { cout<

回答2:

*是取值的意思 &是取地址 **是二级宏携败指针 像 type a type *p=&a type *c=p *c是一级指针 取到的是p的值 **c是二级指针 取到的是p的这个地址里指向的地址的值,也就是p里放的上a的隐渗地蔽颤址,最终于拿到a地址里的值