CC++学习(4)函数与指针取地址符

xiaoxiao2021-02-28  118

题目来源:点击打开链接

有如下一段程序: 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;

分析:

函数指针变量的声明方法为: 返回值类型 (

函数指针变量

根据定义, int(*pf)(float); int (*p)(float)=&f1;  pf,p都是函数指针变量。 函数地址 选项C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。 函数地址的获取,可以是函数名,也可在函数名前加取地址符& ################################################################## 选项C错误是因为函数行参类型不匹配。 注意D答案,函数名和数组名一样,相当于了地址。 函数名在使用上是和指针等同,但其并非是一个真正的指针   C里面 函数名 等价于 函数名取地址,所以ABD中不管有没有取地址符号,表达的意思都一样  C错误在于函数指针pf指向的函数的参数类型 与 f2函数的参数类型 不一样。

函数指针所指向的函数,返回值类型,形参列表必须完全匹配,对函数指针赋值可以采用以下方式pf=&p1或者pf=p1

转载请注明原文地址: https://www.6miu.com/read-24679.html

最新回复(0)