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

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

Войти
Регистрация
Восстановить пароль
 
Darthriddikc
10 / 10 / 0
Регистрация: 23.12.2012
Сообщений: 45
#1

Указатель на массив из n элементов - C++

18.10.2013, 02:19. Просмотров 437. Ответов 3
Метки нет (Все метки)

Всем доброй ночи!Кто-то наверное уже спит, а я вот никак не могу понять смысл указателей на массив из n элементов, ведь при увеличения значения указателя, допустим на единицу, он "шагает" через весь массив т.е. переходит на адрес <размер типа массива>*<количество элементов>, для того чтобы увидеть значение элемента массива, на который ссылается указатель, надо произвести двойное разыменование, почему? Как, тогда косвенно обратится к остальным элементам массива кроме 1-ого?
Например:
C++
1
2
3
4
5
6
7
int Arr[]={1,2,3,4,5}; //целочисленный массив из 5 элементов
int (*ptArr)[5]; //целочисленный указатель на массив из 5 элементов
ptArr=&Arr;
cout<<ptArr<<' '<<*ptArr<<' '<<**ptArr<<endl; //на экране будет два одинаковых адреса и значение 1-ого элемента массива
cout<<&ptArr[0]<<' '<<ptArr[0]<<' '<<*ptArr[0]<<endl; //на экране тоже самое, что и выше
ptArr[1]; //это место находиться уже через sizeof(Arr) байт
ptArr++; //указатель переходит на sizeof(Arr) байт вперёд
Добавлено через 1 минуту
Всё, сам допёр (наверное) Этот ptArr, грубо говоря, это указатель на двумерный массив, т.е. в моём примере на массив состоящий из 5 столбцов и 1 строки, тогда всё сходится, и обратиться тогда, допустим к 3-ему элементу, можно так: ptArr[0][2], тогда, я думаю, что понимаю почему такие вещи происходили, так как с ним нужно обходится как с указателем на двумерный массив
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 02:19     Указатель на массив из n элементов
Посмотрите здесь:

Как вернуть из функции указатель на массив элементов класса - C++
Здравствуйте! Возникла такая проблема. Есть класс, созданный мной. Функция формирует массив элементов этого класса (массив...

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив) - C++
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая как параметр получает указатель на...

Как получить ссылку на указатель или указатель на указатель в массиве? - C++
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как поменять значения указателей, передаваемых в функцию. Если...

Написать функцию принимающую массив и возвращающую указатель на динамический массив - C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий первые n нaибольших чисел. Как сделать...

Указатель на массив - C++
Есть такая структура struct Elem { char cos; Elem * next; Elem * prev; }; Elem * Head=NULL,*Tail=NULL;

Массив и указатель - C++
При компиляции кода, приведенного ниже, вывод происходит со второго числа. Почему? int mass = {1, 2, 3, 4, 5, 6}; int *pmass = mass; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
extenup
54 / 54 / 3
Регистрация: 12.11.2011
Сообщений: 109
18.10.2013, 11:13     Указатель на массив из n элементов #2
Цитата Сообщение от Darthriddikc Посмотреть сообщение
int (*ptArr)[5];
Какие-то сложности вы написали. Вот указатель на массив: int *ptArr = Arr; Вот мы узнаём адрес первого элемента массива: cout << ptArr; А вот мы узнаём адрес второго элемента массива cout << ptArr + 1; Ну а так мы узнаём значение на пример третьего элемента cout << *(ptArr + 2);
Darthriddikc
10 / 10 / 0
Регистрация: 23.12.2012
Сообщений: 45
18.10.2013, 13:39  [ТС]     Указатель на массив из n элементов #3
extenup, ну это понятно, простой указатель на массив и указатель на массив с определённым количеством элементов – разные вещи, я и хотел разобраться с таким видом указателя и где такую конструкцию можно целесообразно было бы применять.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2013, 13:48     Указатель на массив из n элементов
Еще ссылки по теме:

Указатель на массив - C++
объясните пожалуйста что я тут делаю: char b; char* Buffer = &amp;b; Buffer = &quot;123&quot;; и почему у меня после этого в char b...

Указатель на массив - C++
Скажите, почему этот код нельзя скомпилировать? double a; double *pa = &amp;a; // !!!!! double *pa_2...

указатель и массив - C++
подскажите плс эти две строки эквивалентны? char* str=&quot;bla bla bla&quot;; char str={&quot;bla bla bla&quot;}; Почему при выводе адреса 1...

Указатель на массив - C++
Не могу разобраться в указателях. Допустим есть двумерный массив, выводятся поочереди 19 элементов. Если я в инструкции if поменяю...


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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
7164 / 4330 / 632
Регистрация: 29.11.2010
Сообщений: 11,765
18.10.2013, 13:48     Указатель на массив из n элементов #4
Цитата Сообщение от Darthriddikc Посмотреть сообщение
я и хотел разобраться с таким видом указателя и где такую конструкцию можно целесообразно было бы применять.
целесообразно использовать индексы и не извращаться
Yandex
Объявления
18.10.2013, 13:48     Указатель на массив из n элементов
Ответ Создать тему
Опции темы

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