首页 > 试题广场 >

定义一个函数指针,指向的函数有两个int形参并且返回一个函数

[单选题]
定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?
  • int (*(*F)(int, int))(int)
  • int (*F)(int, int)
  • int (*(*F)(int, int))
  • *(*F)(int, int)(int)
推荐
答案:选A
首先,一个函数指针,指向的函数有两个int形参,这个就是(*F)(int, int),这返回的是一个指针
返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数;把上面的结果当成一个指针,相当于再做一次上面的步骤,所以结果为:int (*(*F)(int, int))(int)
编辑于 2015-02-04 20:43:49 回复(2)
A.       针对A.   先看优先级最高的,即内部括号(*F),看出F是一个指针,然后再看右边(int , int),说明它是一个函数指针,(int,int)为此函数的形参列表.(* (*F)(int, int) ) .再往外看, (*F)(int, int)   括号外面* 表示这又是一个指针,而且去掉这一部分剩下   
  • int (*)(int)
这是一个典型的函数指针, 参数int ,返回值int.   那就是说 函数指针F 指向的函数(函数1) 有两个int,然后这个函数(函数1) 返回值  又是一个函数指针,这个函数指针的原型函数(函数2)是int fun(int).    
其实本质就是函数指针 指向  一个 返回函数指针的函数
发表于 2015-04-13 15:05:07 回复(0)
首先定义一个函数指针,(*F)(int,int),这个还没有注明返回类型;第二步,返回类型是一个函数指针,设为F',则int(*F')(int),然后替换int(*(*F)(int,int))(int)
编辑于 2015-08-21 15:01:11 回复(0)
指针函数int*  f(int a, int b)
f它是一个函数,只不过返回值是一个int型指针的函数

函数指针:int (*f)(int a,int b)  
f它是一个指针,只不过这个指针指向的是“函数”类型的指针
int (*f)(int a,int b)  :f是指向返回类型为int且形参为两个int型变量的函数的指针

例如我自己写了个求两个数最大值函数 int max(int a,inb),我要用它的话可以直接调用max函数
也可以f=max,然后调用f
发表于 2017-05-02 00:37:54 回复(0)
      来自@Aesthetic92
       首先,一个函数指针,指向的函数有两个int形参,这个就是(*F)(int, int),这返回的是一个指针
返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数;把上面的结果当成一个指针,相当于再做一次上面的步骤,所以结果为:int (*(*F)(int, int))(int)
发表于 2017-05-01 16:24:25 回复(0)
函数指针和指针函数这两个概念,虽然名字看着像,但意思和用法可是完全不一样的。下面给你讲讲它们的区别和分辨方法。 函数指针(Function Pointer) - 定义:函数指针其实就是一种指针变量,它存储的是函数的地址,也就是指向函数的。 - 用途:可以用它来调用函数,或者把它当作参数传递给其他函数。 - 声明方式:格式是“返回类型 (*指针名)(参数类型列表)” 。 - 示例:比如在C语言中,先定义一个函数 add ,它接收两个整数 a 和 b ,返回它们的和,代码是 int add(int a, int b) {return a + b;}  。然后定义一个函数指针 funcPtr ,写成 int (*funcPtr)(int, int) = add; ,这就表示 funcPtr 是指向 add 函数的指针 。最后可以通过 funcPtr 调用 add 函数,像 int result = funcPtr(2, 3);  。 指针函数(Pointer Function) - 定义:指针函数本质上是一个函数,只是它的返回值是指针类型。 - 用途:主要用来返回指针类型的数据,比如数组、字符串或者动态分配的内存等。 - 声明方式:格式是“返回类型* 函数名(参数类型列表)” 。 - 示例:还是在C语言中,定义一个 createArray 函数,代码是 int* createArray(int size) {int* arr = (int*)malloc(size * sizeof(int));return arr;} ,这个函数接收一个整数 size ,然后动态分配一块内存,并返回指向这块内存的指针 。调用这个指针函数可以写成 int* array = createArray(10);  。 辨别方法 - 函数指针:在声明里,如果看到有 (*指针名)  ,那就说明这是一个指向函数的指针。 - 指针函数:声明中要是有 *函数名  ,那就表示这是一个返回指针的函数。 总结 - 函数指针:它是指向函数的指针,作用是调用函数或者传递函数。 - 指针函数:它是返回指针的函数,主要用于返回指针类型的数据。 只要看声明中 * 的位置和括号的使用情况,就能轻松区分函数指针和指针函数了。
发表于 2025-02-28 14:39:53 回复(0)

从最内层开始

发表于 2019-10-08 19:01:46 回复(0)
太绕了
发表于 2018-02-02 12:45:00 回复(0)