声明一个函数在c 中返回一个2 d数组
这个问题在某些方面有问题,但我觉得很难理解。
int (*q)[3][4]
– > q
是指向3行和4列的2-D数组的指针。
现在假设我想从函数返回一个二维数组。
pointer-to-2d-array func() { static 2 day array; return ; }
基本上应该是我的function的签名。 我见过很多像下面这样我不喜欢的地方
int (*fun2())[column];
我发现难以解释/理解签名。 有人可以帮我吗?
一种简单的方法是使用typedef
:
typedef int (*ThreeByFourPtr)[3][4]; ThreeByFourPtr fun() { static int res[3][4]= {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; return &res; }
优点是语法镜像了类型指针声明的类型,类型名称替换了变量的名称。