【发布时间】:2014-03-04 16:41:00
【问题描述】:
关于 C 编程语言 (ANSI-C) 的一个简单问题:
C 中的多维数组是锯齿状的吗?
我的意思是——我们是在谈论“数组数组”(一个指向内存中其他地址的指针数组),还是只是“长一维数组”(按顺序存储在内存中)?
令我困扰的是,我有点确定:
matrix[i][j] 等价于* ( * (matrix + i) + j)
【问题讨论】:
-
这取决于你将如何分配内存。
-
@KarthikSurianarayanan 当然。我说的是多维数组的常规声明,例如:int matrix[3][4];
-
@programmer 为您自己获取一份 C99 标准的副本。它非常有用,请阅读第 70 页。
-
@tesseract 但我说的是 ANSI-C(我有《The C Programming Language 2nd edition》一书)。
标签: c arrays multidimensional-array jagged-arrays ansi-c