在 C 中,我们有二维数组,即 a[m][n]
。
在一维数组中,a
是指向数组开头的指针。
二维数组呢? a[i]
是否包含指向数组中 i
行开头的指针?因此 a[i]
是一个指针数组,在下面的事情 function(int **a, m, n)
?
最佳答案
Does a[i] hold a pointer to the start of the i row in an array?
没有。 C 中二维数组的数据是一个连续的元素 block 加上一些巧妙的索引访问。但是二维数组是数组的数组,而不是指针的数组。
形式上,a[i]
包含一维数组。在某些上下文中,这可能会衰减为指向第 i 行的第一个元素的指针,但它的类型仍然是 T[n]
,对于某些类型 T
你还没有指定。
关于C 二维数组 : Is the first 'level' an array of pointers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28540390/