📜  C测验– 107 |问题5

📅  最后修改于: 2021-05-29 12:29:08             🧑  作者: Mango

对于以下用C声明的函数,请选择最佳语句

int [] fun(void (*fptr)(int *));

(A)这将导致编译错误。
(B)没有编译错误。有趣的是一个函数,它接受一个函数指针FPTR作为参数并返回int数组。
(C)没有编译错误。 fun是一个函数,它将函数指针fptr作为参数并返回一个int数组。另外,fptr是一个函数指针,它使用int指针作为参数并返回void。
(D)没有编译错误。 fun是一个函数,它将函数指针fptr作为参数并返回一个int数组。 int数组取决于fun的主体,即返回什么大小的数组。另外,fptr是一个函数指针,它使用int指针作为参数并返回void。答案: (A)
说明:根据C标准,函数不能具有显式数组作为返回类型。这就是为什么上面会导致编译错误的原因。如果需要数组作为函数调用的输出,则有间接方法。例如,指针可以通过return语句由函数返回,同时通过其他方式提供数组的大小。或者,可以将函数参数用于此目的。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。