c - 内存在二维数组中的位置?

标签 c arrays memory location

在 C 中,数组中的位置 a[i] 等于 *(a+i)。但是,对于二维数组 a[i][j],等效指针是什么?我到达 (a + ((i(第二个数组的大小) + j)),但这似乎不是一个明确的答案。

最佳答案

位置a[i]*(a+i)

位置 a[i][j]*(*(a + i) + j)

请记住,二维数组是数组的数组。因此*a+0指向第一个数组,*a+1指向第二个数组,以此类推。

为了简化...

*(*a+1) = *(*(a + 0) + 1 ) = *(a[0] + 1) = a[0][1]

关于c - 内存在二维数组中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28591779/

相关文章:

C 编程错误相关文本文件输入

c - 使用 strcat() 的段错误

mysql - 我应该使用 MEMORY (HEAP) 引擎还是 MyISAM 引擎创建 Mysql 表?

c++ - 使用VirtualQuery找出哪个 "file"使用内存中的某个页面

c - C 中的变量重用

c - 从 C 调用 Ada 时 Ada 查找表不起作用

c++ - 指针和数组

c - 函数的隐式声明在 C99 中无效

c - fwrite 不写入整个缓冲区

c - 故障安全分配