声明一个函数返回c中的2 d数组

时间:2016-07-17 18:52:02

标签: c

这个问题在某些方面有问题,但我觉得很难理解。

int (*q)[3][4] - > q是指向3行4列的2-D数组的指针。

现在假设我想从函数返回一个二维数组。

pointer-to-2d-array  func() {

     static 2 day array;

     return ;
}

基本上应该是我的功能的签名。我见过很多像下面这样我不喜欢的地方

int (*fun2())[column];

我发现难以解释/理解签名。 有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

一种简单的方法是使用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;
}

优点是语法镜像了类型指针声明,类型名称替换了变量的名称。