我可以在C中以2D数组的形式访问指针吗?
假设我有一个指向int的指针:我可以在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 *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]
}