指针、数组、函数
这是题目要求:这是作答
#include <stdio.h>//cpp.p419复习题第13题
double func1(double, double);
double func2(double, double);
double func3(double, double);
double func4(double, double);
double (*pf)(double, double) = {func1, func2, func3, func4};//参考答案
double ((*pf))(double, double) = {func1, func2, func3, func4};//我做的
pf(10.0, 2.5;);//函数调用
(*pf)(10.0, 2.5);//函数调用
(*(pf+1))(10.0, 2.5);//函数调用
问1:关于参考答案,我的理解是:建立一个包含4个元素的数组pf,同时每个元素都是一个指针, 每个指针指向一个函数。我是按优先级和结合性去解读的, 请问我这样理解对吗?
问2:关于我做的,我一开始是想建立一个数组指针,指向一个包含4个元素的数组,然后这个数组的4个元素是函数, 通过指针去访问元素达到调用函数的目的。我这么做不可以吗? 新理解:
关于参考答案:指针数组的每个元素都是指针,每个指针存放一个函数地址,因此可以通过地址去调用对应函数。
关于我做的:建立一个指向“内含4个元素的数组”的指针, 该数组的每个元素都是一个函数(数组元素应该是C语言的可用类型,函数不是类型,因此这个做法不行)。
这样理解可以不? 之朝百 发表于 2020-9-9 17:07
新理解:
关于参考答案:指针数组的每个元素都是指针,每个指针存放一个函数地址,因此可以通过地址去调用 ...
函数的类型就是返回值的类型 把概念搞混了,数组指针应该是指向二维(及以上维度)的数组,而结构数组是一维数组,难怪做了一下午一直类型不匹配
页:
[1]