我可以在C中以2D数组的形式访问指针吗?

我可以在C中以2D数组的形式访问指针吗?,c,multidimensional-array,C,Multidimensional Array,假设我有一个指向int的指针: int *p = somefunc(); 我知道它指向25整数,按5x5网格逻辑排列。我可以通过以下方式访问元素: p[y*5+x] 或者这个: *(p+y*5+x) 有没有办法将其作为二维阵列访问 a[y][x] 是的: 我会用一个简单的函数来实现: int at(int * p, int x, int y) { return p[y*5+x] } 您可以为不太特定的表格宽度添加另一个参数(即5以外的参数),但我通常就是这样做的。如果没有显式强

假设我有一个指向int的指针:

int *p = somefunc();
我知道它指向25整数,按5x5网格逻辑排列。我可以通过以下方式访问元素:

p[y*5+x]
或者这个:

*(p+y*5+x)
有没有办法将其作为二维阵列访问

a[y][x]
是的:


我会用一个简单的函数来实现:

int at(int * p, int x, int y)
{
    return p[y*5+x]
}

您可以为不太特定的表格宽度添加另一个参数(即5以外的参数),但我通常就是这样做的。

如果没有显式强制转换,这是不可能的吗?@TorKlingberg据我所知,没有。
int at(int * p, int x, int y)
{
    return p[y*5+x]
}