Я пытаюсь выучить указатели, и я просто столкнулся с ситуацией, которую я не понимаю.
int main()
{
int num[3][2]={3,6,9,12,15,18};
printf("%d %d",*(num+1)[1],**(num+2));
}
В соответствии с тем, что я узнал, выход должен быть:
12 15
но на самом деле это:
15 15
Почему? Просьба пояснить, как все вычисляется здесь, так как, по моему мнению, сначала *(num+1)
вычисляется и указывает на 1-й, т.е. {9,12}
, а затем [1]
следует разыгрывать первый элемент i.e 12
.
Я использую компилятор GCC.