首页 > 试题广场 >

有如下一段程序,以下不合法的是?

[单选题]
有如下一段程序:
int f1(float);
int f2(char);
int f3(float);
int f4(float);
int (*pf)(float);
则以下不合法的是()
  • int (*p)(float) = &f1;
  • pf = &f4;
  • pf = &f2;
  • pf = f3;
C
知识点:
  • 函数指针变量:
函数指针变量的声明方法为:
返回值类型 ( * 指针变量名) ([形参列表]);
根据定义,
int(*pf)(float);
int (*p)(float)=&f1;
pf,p都是函数指针变量。
  • 函数地址
C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。
函数地址的获取,可以是函数名,也可以在函数名前加取地址符&

C错误是因为函数行参类型不匹配。





发表于 2015-09-28 10:54:07 回复(5)
函数指针所指向的函数,返回值类型,形参列表必须完全匹配,对函数指针赋值可以采用以下方式pf=&p1或者pf=p1
发表于 2016-09-06 07:17:41 回复(1)
函数名等价于函数名取地址C
编辑于 2015-12-06 00:18:46 回复(0)
函数取地址时,可以直接使用函数名,也可以在函数名前面加&
发表于 2017-09-24 02:37:18 回复(0)
b,c 选项都一样,让我们怎么选四个都对的
发表于 2021-12-13 02:02:00 回复(2)
B、C答案都一样,输错了答案都不知道吗?
发表于 2021-11-10 14:10:04 回复(1)
我寻思,B 和 C 是不是长得一样
编辑于 2022-01-24 16:42:08 回复(0)
我猜测题目错误,选项应该是下面这样:
A int (*p)(float) = &f1;
B pf = &f4;
C pf = &f2;
D pf = f3;
这样的话,就选C,函数指针形参和f2的形参不一致;
对于函数地址,可以直接用函数名,也可以函数名前加取值运算符

发表于 2022-01-13 11:54:11 回复(0)

A. int (*p)(float) = &f1; 这是一个合法的赋值语句,将函数f1的地址赋给了指针变量p。

B. pf = &f4; 这也是一个合法的赋值语句,将函数f4的地址赋给了函数指针pf。

C. pf = &f2; 这里将函数f2的地址赋给函数指针pf,语法上是合法的,但是由于f2的参数类型与指针pf所指向的函数类型不匹配(f2的参数类型是char,而指针pf所指向的函数类型参数类型应该是float),因此这个赋值是不合法的。

D. pf = f3; 这也是一个合法的赋值语句,当函数名被用作右值时,它会自动转换为指向该函数的指针。

发表于 2023-11-09 19:40:10 回复(0)
C
知识点:
  • 函数指针变量:
函数指针变量的声明方法为:
返回值类型 ( * 指针变量名) ([形参列表]);
根据定义,
int(*pf)(float);
int (*p)(float)=&f1;
pf,p都是函数指针变量。
  • 函数地址
C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。
函数地址的获取,可以是函数名,也可以在函数名前加取地址符&

C错误是因为函数行参类型不匹配。

发表于 2022-05-15 15:35:07 回复(0)
B C答案写成一样了!
发表于 2021-12-05 00:05:02 回复(0)
因为pf是浮点型,而C的答案是调用字符型
发表于 2017-12-03 11:31:39 回复(1)
C
就是C的参数类型不对
发表于 2015-09-30 21:11:13 回复(0)
函数指针所指向的函数,返回值类型,形参列表必须完全匹配,对函数指针赋值可以采用以下方式pf=&p1或者pf=p1
发表于 2023-10-21 17:24:15 回复(0)
选项D怎么解释啊?
发表于 2016-06-28 22:59:44 回复(1)
函数名在使用上是和指针等同,但其并非是一个真正的指针  
C里面 函数名 等价于 函数名取地址,所以ABD中不管有没有取地址符号,表达的意思都一样  C错误在于函数指针pf指向的函数的参数类型 与 f2函数的参数类型 不一样
发表于 2015-10-02 10:30:21 回复(1)
函数地址的获取,可以是函数名,也可以在函数名前加取地址符&
发表于 2023-03-17 12:34:31 回复(0)
对函数指针赋值有两种方式:函数名本身也可以作为引用名当做右值赋给指针变量
发表于 2022-11-30 12:22:26 回复(0)
发表于 2022-03-20 11:27:01 回复(0)
函数名等于函数入口地址
发表于 2022-03-11 20:44:31 回复(0)