【发布时间】:2019-04-07 05:42:02
【问题描述】:
我刚刚开始通过一本书学习 C 语言,并且在他们讨论指针和数组的部分并没有感到困惑。如果有一个名为a[NUM_ROW][NUM_COLS] 的多维数组(我将只讨论这个数组作为具体的二维数组),a[0] 是什么意思?
我正在学习的部分有一个关于“处理多维数组的行”的部分,它有一个例子
p = &a[i][0] ;
可以写成
p = a[i];
书上说a[i]是指向第i行第一个元素的指针。
然后有一部分是关于“使用多维数组的名称作为指针”,在 int a[NUM_ROWS][NUM_COLS] 的情况下,数组名称 a 不是指向 a[0][0] 的指针,而是指向 a[0] 的指针.
a[0] 和第一部分的a[i] 意思一样吗?我有点困惑,因为在关于“使用多维数组的名称作为指针”的部分书中说数组名 a 是指向长度为 NUM_COLS 的整数数组的指针(并且 a 的类型为 int (*) [NUM_COLS]
我想知道a[0] 是表示长度为 NUM_COLS 的整数数组还是指向第 0 行中第一个元素的指针。(或者是同一件事?也许是因为我对这个概念有点陌生并且感到困惑。)
附:这本书是C编程(KNK)的第12.4章
【问题讨论】:
-
给定
a[n][m],您可以说a[0]是m元素的数组(在许多情况下,a[0]被转换为指向数组a[0]的第一个元素的指针)。 -
你可能会喜欢c-faq的第6部分。
-
哦,谢谢,我去看看!
标签: c arrays multidimensional-array