Массивы в C используются через указатели? - PullRequest
0 голосов
/ 23 января 2011

В вопросе, который я разместил здесь: C ++ - выпуск класса

В одном из ответов от @SanSS упоминалась следующая часть ответа:

Массивы в C используются через указатели ...

Как это сделать? И можете ли вы прояснить это на примере, если это возможно?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 23 января 2011

указатель эта ссылка поможет вам использовать массив через указатель.

извините за мой английский.

5 голосов
/ 23 января 2011

Что подразумевается под этим, может быть несколько вещей:

1) оператор индекса определяется в терминах арифметики указателей. C99 6.5.2.1/2 «Подписка на массив» говорит:

Определение оператора нижнего индекса [] состоит в том, что E1 [E2] идентичен (* ((E1) + (E2))).

В качестве примера предположим, что у вас есть массив, отклоненный следующим образом: char s[] = "012345";

Все следующие значения оцениваются как «4»:

  • s[4]
  • *(s + 4)
  • 4[s] - это необычная конструкция может вас удивить, но из-за того, что подписка определяется стандарт, это эквивалентно *(4 + s), что совпадает с *(s + 4) и так же, как s[4].

2) (тесно связано с вышеизложенным) имена массивов в большинстве выражений приводятся к указателям на первый элемент массива (операндом для операции sizeof является главное исключение).

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