我意识到我对取消引用指针的值有些困惑,因为我正在阅读带有以下代码片段的 C 文本:
int main()
{
int matrix[3][10]; // line 3: matrix is tentatively defined
int (* arrPtr)[10] = matrix; // line 4: arrPtr is defined and initialize
(*arrPtr)[0] = 5; // line 5: what is the value of (*arrPtr) ?
我的困惑在于最后一行中 *arrPtr 的值。这是我到目前为止的理解。
第 3 行,matrix 被声明(暂时定义)为由 3 个元素组成的数组,该数组由 10 个 int 类型元素组成。
第 4 行,arrPtr 被定义为指向由 10 个 int 类型元素组成的数组的指针。它也被初始化为一个10个元素的数组的ptr(即矩阵的第一行)
现在第 5 行,arrPtr 被取消引用,产生了实际的数组,所以它的类型是 10 个整数的数组。
我的问题:为什么数组的值,只是数组的地址,而与它的元素无关?