Как работает индексация массива по -разному между 1D и 2D массивами в C ++?C++

Программы на C++. Форум разработчиков
Anonymous
Как работает индексация массива по -разному между 1D и 2D массивами в C ++?

Сообщение Anonymous »

Я не понимаю, как на самом деле работает индексация массива в C ++. Я понимаю, что когда мы используем выражение x [n] (где x является адресом, а n - целое число), компилятор рассматривает [] как оператор, который вычисляет смещение по базовому адресу.
I учил, что компилятор рассматривает [] как оператор, который движется по адресу по номеру байтов. arr интерпретируется как * (arr + i), который перемещает адрес по байтам i * sizeof (element_type). Рассмотрим этот пример: < /p>
char country[][20] = {"U.S.A", "CHINA", "RUSSIA"};
< /code>
Если я получаю доступ к стране [2], я получаю «Россию» (вся строка), а не персонаж 'S', как я мог бы ожидать Адрес первого термина, который является «U», и Country [2] должен означать, что приходит через 2 байта после адреса «U»)?
>

Подробнее здесь: https://stackoverflow.com/questions/795 ... rrays-in-c

Вернуться в «C++»