Я дал следующий фрагмент кода:Указатель на массив 2D
int group1[3][3] = {3,4,5,1,9,8};
int group2[3][3] = {{1},{2,3},{4,5}};
int *gPtr1 = group1;
int *gPtr2 = group2;
Вопрос спрашивает меня для значения: (я должен ответить на это на бумаге, конечно, ни один компьютер)
*(gPtr1 + 3)
*(gPtr2 + 3)
Как правило, я знаю, что для 1-мерного массива он добавляет «адрес» вместо значения. Так, например:
int balance[10]={1,2,6,4};
int *p=balance; //p points to balance [0]
p+=3; //points to balance [3]
Однако, я не могу показаться, чтобы сделать указатель на массив 2D, чтобы проверить это, как в этом вопросе, я всегда получаю «Initialization от несовместимого типа указателя» ошибка.
Код не будет компилироваться без предупреждений от достойного компилятора - из-за несоответствий типа инициализация указателей больше, чем из-за неполных фигурных скобок в первом инициализаторе. Вы можете исправить их с помощью 'int * gPtr1 = & group1 [0] [0];' и 'int * gPtr2 = & group2 [0] [0];' (и вы получите результат, который автор кода намеревается вы получите). Вы знаете, к чему относится этот вопрос? –