int f(int b[][3]);
int main()
{
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
f(a);
printf("%d\n", a[2][1]);
}
int f(int b[][3])
{
++b;
b[1][1] = 1;
}
3x3 => 9
элементов, содержащихся в двумерном массиве a
. Когда это передано, тогда b
будет содержать базовый адрес a
. Если предположить, что базовый адрес равен 1000
, то ++b
как это сделать в 3 точках, а не в 9? Мы делаем типизацию, когда переменная a
передается в b[][3]
как только три элемента?
Как b[1][1]
соответствует адресу 8
, а не 5
?
Мы не можем увеличивать или уменьшать массив, поскольку массив является указателем const
, но как они увеличивают ++b
как массив?