一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数,该怎么写呢?

如题所述

依照题意依次写出即可:

一个有10个指针的数组:*a[10];

该指针指向一个函数:(*a[10])();

该函数有一个整形参数: (*a[10])(int);

所以int (*a[10])(int)就是答案。

阅读这种表达式的时候可以遵循以下的规则:从右向左,由近及远,括号优先;比如从a符号开始。其右边是[10],说明a是个数组,其中存了十个元素。

再看a的左边是一个*。说明数组中存的是指针。现在在看(*a[10])的右边是(int);说明所存的指针是指向有一个int形参的函数现在看(*a[10])的左边是个int ,说明指向的函数的返回值为int 类型。

扩展资料

指针数组中的每一个元素均为指针,即有诸形如“ptr_array[i]”的指针。由于数组元素均为指针,因此ptr_array[i]是指第i+1个元素的指针。指针数组可以作为函数的参量使用,使用方式与普通数组类似。指针数组常适用于指向若干字符串,这样使字符串处理更加灵活方便。

指针数组一般用于处理二维数组。指向一维数组的指针变量用于处理二维数组也是非常方便的。

数组指针和指针数组在处理同一个二维数组时,数组指针的元素个数和指针数组的数组长度不相同,数组指针的元素个数和二维数组的列长度相同。 而指针数组的数组长度和二维数组的行长度相同。

在处理字符串的问题上,使用指针数组处理就比使用数组指针方便多了。因为多个字符串比用二维字符数组处理字符串更加方便,更加的节省内存空间。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-02
测试过了,product函数没问题,指针的确是从数组头一直移动到数组尾。
估计是参数m的问题,你尝试在调用函数product之前输出一下m的所有元素试试,是不是给m赋值时出了问题呢?
第2个回答  推荐于2017-12-16
int (*a[10])(int b)

肯定正确
呵呵 你刚学C吧

加油!!
http://www.programfan.com/club/bbs.asp?bbsid=5
有空来这里坐坐本回答被提问者采纳
相似回答