我有一个数组前:
int array[3][5];
如果我想为该数组中的元素赋值,这很简单......例如:
array[1][2] = 8;
但是,我想用指针数学来表示它,这是否正确?
**(array + 5 * 1 + 2) = 8;
在这两种情况下,它都在寻找第 7 个位置...我只是不确定是否需要在 (code) 之外包含第 2 个 *
**(code)
编辑:只是有点跟进。感谢所有帮助我的人。我的困惑来自讲师笔记中的错误,在我展示了您提供的信息后,他意识到了错误并同意
*(*(array+row)+col)
或者
*(*array+MAX_COL*row+col)
是二维数组的精确指针数学表示。
**(array+MAX_COL*row+col)
is like ,用于多维数组的array[MAX_COL*row+col]
一维数组实现,就像James Kanze在这篇文章的一个回复中提到的(第二个比第一个快)。