c - 关于在 C 中使用指针定义二维数组

标签 c pointers multidimensional-array

当我们定义一个二维数组时:

int *a[5];

“5”定义了哪个维度?第一个还是第二个?

最佳答案

它不是“二维”数组。它是指向 int 的一维指针数组。因此,数组大小指定它有 5 个指针的空间。每个单独的指针都可以指向具有不同大小的缓冲区的第一个元素。

“真正的二维数组”是口语化的“数组的数组”int a[M][N]。这里表达式 a[i] 的计算结果为 N 整数数组,位置为 i

关于c - 关于在 C 中使用指针定义二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41850165/

相关文章:

c - C 中动态字符 ** 的奇怪行为

c - 我将如何修改 rmchr 以使用指针。我已经能够让我的代码按原样运行,但赋值需要使用指针

c - 访问函数中的链表 - C

java - 用于存储 2D 数组值的内存效率最高的数据结构 (Java)

java - 二维数组 - java.lang.NullPointerException

创建一个函数来复制 n 个字符,如 C 中的 strcpy

c - 复杂结构的哈希

使用 C 将 ppt/pptx 转换为 pdf

关于多维数组和指针的概念问题

c++ - 如何修复二维嵌套 vector 的分割错误