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

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

Войти
Регистрация
Восстановить пароль
 
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
#1

Указатели. Работа с указателями - C++

07.07.2012, 19:00. Просмотров 499. Ответов 8
Метки нет (Все метки)

Здравствуйте, товарищи. Хотел у вас поподробнее выяснить что такое указатели.Точнее я понял, что это указатель - это переменная, которая содержит в себе адрес на другую переменную(и не только). Но для чего используются указатели?Какие есть особенности при работе с указателями? Удобно ли их использовать?И самое главное - КАК их использовать?

Пожалуйста, ответьте на эти вопросы.
Заранее спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2012, 19:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатели. Работа с указателями (C++):

Указатели и действия над указателями - C++
char *ptr, result, s1; ptr = strtok(s1, " "); if (strstr(result, strcpy(" ", strcpy(ptr, " "))) == NULL) strcat_s(result,...

Прога написана с указателями,как указатели заменить ссылками - C++
Доброго времени суток. Прога написана с указателями,как указатели заменить ссылками? #include <iostream> #include <ctime> ...

Работа с указателями - C++
Доброго времени суток! Прошу помощи в решении очень интересной задачи. Перепробовал все свои знания., не получается( Чаще всего...

Работа с указателями - C++
Нужно чтобы при каждом попадании "1", в введенной строке выводилось сообщение на экран. Запускается без ошибок, но после ввода строки...

Работа с указателями - C++
Всем здравия. Нужна ваша помощь. Есть задание по С++. К сожалению работала в основном по С# да и с указателями не совсем лажу. Может кто...

Работа с указателями - C++
Подскажите пожалуйста, зачем написано * Rad_to_deg void show_polar (const polar * pda) { using namespace std; const...

8
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
07.07.2012, 19:30 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Как минимум, удобно для выделения памяти для массивов неизвестного размера (хотя в С++ используют stl-контейнеры).

C++
1
int * arr = new int[size]; // size может быть неизвестна на этапе компиляции
Или для передачи объектов в функции, т.е. передаём только адрес, а не копируем значение объекта. Например, когда объект большой, это будет эффективным приёмом. К тому же, объект можно будет модифицировать внутри функции.

C++
1
2
void foo(int * x); // прототип
foo(&x); // вызов - передаём адрес объекта
3
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.07.2012, 19:34 #3
Цитата Сообщение от Schizorb Посмотреть сообщение
Или для передачи объектов в функции
Для этого есть ссылки. В некоторых случаях - временные объекты.
1
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
07.07.2012, 19:36 #4
soon, не спорю. Это просто пример.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
07.07.2012, 19:45 #5
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
КАК их использовать?
Вот ещё пример. Связные структуры данных. Предположим есть набор данных неизвестного заранее, и предположительно большого размера. Тогда удобно организовать их в виде набора структур содержащих указатели на структуры этого же типа. Элемент двунаправленного списка, например, - структура, которая помимо полей данных содержит указатели на предыдущую и следующую структуру (элемент). Сортировка, вставка, удаление и добавление в такой список - работа с указателями, не нуждающаяся в перемещении элементов в памяти. Почитайте про связные структуры данных.
2
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.07.2012, 19:46 #6
Schizorb, поймите меня правильно, это плохой пример использования указателей(в С++). От них вообще советуют отказываться(в чистом виде), заменяя более безопасными оболочками.
0
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
07.07.2012, 19:50 #7
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
Пожалуйста, ответьте на эти вопросы.
Заранее спасибо.
Зачем отвечать на вопросы, ответы на которые есть в любой книжке?
я не понимат
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
07.07.2012, 19:58 #8
Цитата Сообщение от IGPIGP Посмотреть сообщение
Вот ещё пример.
Еще интересна техника использования указателей на объединения. Приводя указатель к типу разных элементов объединения можно получить разные представления его максимального элемента.
Указатели на классы наследники можно получать используя приведение типа к указателю базового класса. Вещь мощная, но требует осторожности в обращении. Вообще с этим лучше знакомиться по хорошим книжкам.
0
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
07.07.2012, 20:04  [ТС] #9
alex_x_x , а что если хочется спросить мнения людей, касающиеся указателей. Не в кажлой книге они описаны понятным языком.А люди ответят на простом и доступном языке.Вот причина. И спасибо всем за ответы.
0
07.07.2012, 20:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2012, 20:04
Привет! Вот еще темы с ответами:

работа с указателями - C++
небольшая проблемка, никак не могу разобраться с указателями. Я так понял что создавая массив лучше если сразу сдалешь на него указатель и...

Работа с указателями - C++
Дана динамическая целочисленная матрица. Построить динамический одномерный массив, каждый элемент которого равен сумме элементов одной...

Работа с указателями - C++
Расскажите как работает каждая строка в коде char *A = "123456789"; unsigned B = 1; char *X = A + B; char *Y = A - (-...

Работа с указателями - C++
Доброго времени суток, нужна помощь. Данный две задачи, обе работают правильно: Дан целочисленный массив размера N. Преобразовать...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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