Есть ли способ получить доступ ко 2-й строке 2d-массива, используя указатель, инициализированный для первой строки? - PullRequest
0 голосов
/ 06 мая 2018

Есть ли способ получить доступ ко 2-й строке двумерного массива char с переменной указателя, установленной на начальный адрес массива?Пример:

char a[2][10];
char *b=a[0];

Есть ли способ получить доступ к [1] ​​с помощью указателя b?

1 Ответ

0 голосов
/ 06 мая 2018

Массивы непрерывны в памяти, даже вложенные массивы массивов.В памяти, а также нарисованный на бумаге, он будет выглядеть примерно так:

+---------+---------+-----+---------+---------+---------+-----+---------+
| a[0][0] | a[0][1] | ... | a[0][9] | a[1][0] | a[1][1] | ... | a[1][9] |
+---------+---------+-----+---------+---------+---------+-----+---------+

Если у вас есть указатель на первый элемент, вы можете затем добраться до любого другого элемента с помощью простой арифметики указателей.Например, чтобы прочитать a[0][2], вы просто используете b[2].Чтобы получить a[1][0], у вас есть b[10].И так далее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...