|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.05.2013, 12:34 | #1 |
Пользователь
Регистрация: 10.08.2012
Сообщений: 43
|
Указатели(консультация).
Добрый день. Начал изучать C++ по книге Шилдта-Базовый курс С++.
Дошел до указателей. Начало понятно, но потом я запутался. И так вопрос: Зачем вообще указатели в C++, можно ли без них обойтись дальше или это архиважный материал? И если можно укажите примеры(на словах) где это может использоваться. Спасибо. |
11.05.2013, 12:48 | #2 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Цитата:
I'm learning to live...
|
|||
11.05.2013, 12:51 | #3 | |
Пользователь
Регистрация: 10.08.2012
Сообщений: 43
|
Цитата:
То есть передается указатель с адресом ячейки (per1 = *per) в которую надо что-то вписать, вместо per = massiv[1000,1000]. Так что ли? Последний раз редактировалось [Jank]; 11.05.2013 в 12:59. |
|
11.05.2013, 13:00 | #4 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
При передаче параметров в функцию "по значению" создается временная копия параметра, которая уничтожается после работы этой функции. Вы работаете с копией, а не с самим значением, т.е вы его не меняете. Чтобы копию не создавать применяются указатели или ссылки.
Преимущество указателей состоит в том, что они применяются для работы с динамической памятью (соответсвенно с динамическими структурами данных), далее - передача параметров "по указателю" не создает копию указателя. В функцию передается адрес, содержащийся в указателе, соответсвенно нет смысла создавать копию, а, значит, повышается быстродействие ПО. Как же быть, если нужно передать параметр по указателю и, при этом, избежать изменения того, на что указывает указатель или сам указатель (адрес). Ответ: для этого применятеся ключевое слово const. |
11.05.2013, 13:06 | #5 |
Форумчанин
Регистрация: 07.04.2012
Сообщений: 216
|
[Jank], лучше напишите, что именно вам в них не понятно. Я сам сейчас учусь по книге Шилдта, честно говоря, в главе указателей расписано все достаточно подробно.
|
11.05.2013, 14:33 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
http://www.programmersforum.ru/showp...4&postcount=27
I'm learning to live...
|
|
11.05.2013, 14:49 | #7 |
Пользователь
Регистрация: 10.08.2012
Сообщений: 43
|
Код:
|
11.05.2013, 15:11 | #8 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Вообще, весь язык С++, построен на указателях. Это его, так скажем, ключевая идеология.
Указатель, это переменная, значение которой равно значению адреса памяти, по которому лежит значение некоторой переменной. В С++, есть несколько типов указателей *, &, ->. * - применяется для динамического выделения памяти. & - применяется для передачи указателей на переменную в функции. -> - Применяется для обращений к членам класов и структур, ранее объявленных при помощи оператора *. Например: TBitmap *bitmap = TBitmap; Далее обращаемся к членам этого класса как bitmap->.... Если нам нужно с этой переменной, зделать какие-то действия в посторонней функции, мы делаем так function(&bitmap){}. Т.е. в функцию мы передаём не саму переменную, а адрес памяти, по которому этот bitmap расположен. Ну и дальше работаем с ней, как обычно.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
11.05.2013, 16:08 | #9 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Если i == 1, то это второй элемент массива... Нумерация элементов массива начинается с 0
|
11.05.2013, 16:37 | #10 |
Пользователь
Регистрация: 10.08.2012
Сообщений: 43
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна консультация | Хочу все | Помощь студентам | 0 | 19.09.2012 11:54 |
Нужна консультация! | Unamed | Работа с сетью в Delphi | 4 | 24.07.2010 13:06 |
нужна консультация | Vogd777 | Помощь студентам | 2 | 28.04.2010 09:01 |
Нужна консультация | GSV84 | Свободное общение | 9 | 02.02.2010 22:43 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |