首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C中多维数组的指针

C中多维数组的指针
EN

Stack Overflow用户
提问于 2015-02-06 02:12:58
回答 4查看 2.3K关注 0票数 2

在C中指向多维数组的指针可以简单地写为:

代码语言:javascript
复制
double *array;

其中array是n乘以n的矩阵?

然后我可以通过array[i][j]访问行i,列j中的元素吗

或者有双指针这样的东西吗?

EN

回答 4

Stack Overflow用户

发布于 2015-02-06 02:16:42

可以将C中指向多维数组的指针简单地写为:

代码语言:javascript
复制
double *array;

是。

假设你有M x N数组。您可以使用:

代码语言:javascript
复制
double* array = malloc(M*N*sizeof(*array));

然后,您可以使用以下命令访问这些元素:

代码语言:javascript
复制
size_t getArrayIndex(size_t m, size_t n, size_t M)
{
    return (m*M+n);
}

double getArrayElement(double* array, size_t m, size_t n, size_t M)
{
    return array[getArrayIndex(m, n, M)];
}
票数 5
EN

Stack Overflow用户

发布于 2015-02-06 02:19:48

double *是指向double的指针。它也是指向double数组元素指针。

做你想做的事:

代码语言:javascript
复制
double bla[23][42];          // array of arrays, type is double [23][42]
double (*p)[23][42] = &bla;  // pointer to an object of type double [23][42]
票数 2
EN

Stack Overflow用户

发布于 2015-02-06 02:40:04

要创建指向多维数组array[i][j]的指针,其中i是行数,j是列数,您可以执行double (*ptr)[j],它表示ptr是指向j个元素的双数组的指针。然后,您可以分配ptr=array;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28351093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档