标题:定义一个指针函数数组
只看楼主
陆嘉文
Rank: 1
来 自:江西
等 级:新手上路
帖 子:96
专家分:6
注 册:2011-11-10
结帖率:76.92%
 问题点数:0 回复次数:5 
定义一个指针函数数组
我想定义一个指针函数数组怎么定义:
这是我写的2种形式,请问哪一种形式可以:

1.int ( * (* p)[10] )(int,int);
2.int ( * ( * p [10] ) )(int,int);
我感觉第二种可以,你们觉得哪种可以啊

2015-08-17 00:31
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
414就知道了啊

DO IT YOURSELF !
2015-08-17 08:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
写个自己也不懂的代码,你可以用typedef的
第一段 int ( * (* p)[10] )(int,int); 等同于
typedef int (*FUN)( int, int );
typedef FUN FUNARRAY[10];
FUNARRAY* p;

第二段 int ( * ( * p [10] ) )(int,int); 等同于
typedef int (*FUN)( int, int );
FUN* p[10];

虽然不知道你想干什么,但我这两段代码都不是你要的,你要的应该是 int (*p[10])( int, int );
2015-08-17 09:13
corfox
Rank: 2
等 级:论坛游民
帖 子:15
专家分:53
注 册:2015-7-29
得分:0 
int ( * (* p)[10] )(int,int);

这个意思是说,p是一个指针,它指向具有10个元素数组的指针,这个数组的每个元素是一个指向参数为(int, int)返回值为int的函数指针的指针

int ( * ( * p [10] ) )(int,int);

这个意思是,p是一个数组,数组每个元素是一个指针,指向参数(int,int)返回值为int的函数指针的指针。
而c语言中,数组名一般可以等价于指针,所以这两者一般也是可以等价的。

所以说,指向参数为(int,int)返回值为int的函数的指针数组正是楼上所说的 int (*p[10])(int, int)
2015-08-17 09:31
陆嘉文
Rank: 1
来 自:江西
等 级:新手上路
帖 子:96
专家分:6
注 册:2011-11-10
得分:0 
回复 3楼 rjsp
不是。我在书上看到的,我自己一下不知道什么意思,就过来问一下
2015-08-18 17:03
陆嘉文
Rank: 1
来 自:江西
等 级:新手上路
帖 子:96
专家分:6
注 册:2011-11-10
得分:0 
回复 4楼 corfox
多谢,和我想的差不多啊
2015-08-18 17:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-456447-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055265 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved