Я понял, что у меня была путаница в отношении значения разыменованного указателя, когда я читал текст 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, матрица объявлена (предварительно определена) как массив из 3 элементов массива типа из 10 элементов типа int.
Строка 4, arrPtr определяется как указатель на массив из 10 элементов типа int. Он также инициализируется как ptr для массива из 10 элементов (т. Е. Первая строка матрицы)
Теперь строка 5, arrPtr разыменовывается, получая фактический массив, поэтому его тип - это массив из 10-ти int.
МОЙ вопрос: почему значение массива, просто адрес массива и никак не связано с его элементами?