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

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

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

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

18.10.2013, 02:19. Просмотров 444. Ответов 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], тогда, я думаю, что понимаю почему такие вещи происходили, так как с ним нужно обходится как с указателем на двумерный массив
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 02:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель на массив из n элементов (C++):

Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. - C++
Пишу в Microsoft Visual Studio -&gt;Win32 Console application -&gt;C++. Условие:Реализовать 3 функции, каждая из которых принимает указатель на...

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

Написать функцию, получающую указатель на массив и возвращает сумму и произведение его элементов - C++
Надо написать функцию, которая получает указатель на массив и его размер, и возвращает сумму и произведение его элементов в двух ...

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

Динамический массив и указатель на указатель - C++
Спасибо за внимание) Задача такова: нужно удалить элемент по индексу, при этом уменьшить сам массив на 1 (т.е. удалили элемент - уменьшился...

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

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

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

Что быстрее использовать, массив э-в, или указатель на массив э-в? - C++
уважаемые, что быстрее использовать, массив э-в, или указатель на массив э-в? или без разницы? С одной стороны обращается все к той же...

Указатель на массив - C++
Подскажите пожалуйста, как создать указатель на массив, если длина массива записана в переменной? Т.е проблема в том что в квадратных...

указатель на массив - C++
Добрый день, объясните как верно будет. например определим массив char array = {&quot;qaqaqaqqa&quot;} к примеру есть функция void primer(...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.10.2013, 13:48
Ответ Создать тему
Опции темы

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