Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
h8er
15 / 15 / 5
Регистрация: 20.11.2013
Сообщений: 92
#1

Как получить доступ к элементам массива работая с ним как с указателем и адресной арифметикой - C++

27.01.2014, 13:56. Просмотров 247. Ответов 3
Метки нет (Все метки)

C++
1
2
3
      int array[5][5] = { {1,2,3}, {1,2},{1,2,3,4}, {1,2,3,4},{1,2,},};
      for(int i = 0; i < 25; i++)
              printf("%d ", array[0][i]);
Как можно представить array[0][i] в виде указателя *(array + ...) ? В смысле как получить доступ к элементам массива работая с ним как с указателем и адресной арифметикой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2014, 13:56     Как получить доступ к элементам массива работая с ним как с указателем и адресной арифметикой
Посмотрите здесь:
C++ Как получить доступ к элементам вектора
C++ Можно ли адресной арифметикой перебрать массив массивов по первому индексу во вложенном цикле, а во внешнем по второму?
C++ Классы С++, получить доступ из одного класса к элементам другого
C++ Как с указателем обратиться к 4му элементу массива
C++ Доступ к элементам массива через указатели
Доступ к элементам динамического массива из структур C++
C++ Как обращаться к элементам двумерного массива?
Как обратиться к элементам массива через указатель? C++
C++ Как обратиться к элементам массива через указатель?
C++ Как присвоить элементам массива указателей строки
C++ Как обратиться к элементам массива БЕЗ применения индексов
Может ли объемлющий класс иметь неограниченный доступ к элементам вложенного класса? А вложенный класс — к элементам объемлющего? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
27.01.2014, 14:05     Как получить доступ к элементам массива работая с ним как с указателем и адресной арифметикой #2
Простенький пример:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main() {
    
    int a[2][3] = { 0 };
    a[1][2] = 42;
    std::cout << *((*(a + 1))+2) << std::endl;
    return 0;
}
http://ideone.com/axsLRz
h8er
15 / 15 / 5
Регистрация: 20.11.2013
Сообщений: 92
27.01.2014, 14:12  [ТС]     Как получить доступ к элементам массива работая с ним как с указателем и адресной арифметикой #3
Скажите, пожалуйста, а для чего нужно разыменование *(a + 1)? Ведь работа идет по адресам, я правильно понимаю?
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
27.01.2014, 14:14     Как получить доступ к элементам массива работая с ним как с указателем и адресной арифметикой #4
Цитата Сообщение от h8er Посмотреть сообщение
для чего нужно разыменование
потому что a - это, если можно так сказать для статического массива, указатель на указатель на целое.
Т.о., чтобы получить значение, требуется два разыменования.
Yandex
Объявления
27.01.2014, 14:14     Как получить доступ к элементам массива работая с ним как с указателем и адресной арифметикой
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru