0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 20
|
|
1 | |
Осмысление указателей29.07.2013, 01:35. Показов 1574. Ответов 26
Метки нет (Все метки)
Пожалуйста расскажите более популярным языком что это такое и для чего они нужны. Перечитал несколько раз пару дополнительных источников - не могу понять как они эффективно реализуются на деле..
0
|
29.07.2013, 01:35 | |
Ответы с готовыми решениями:
26
Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей? Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си) Создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей |
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|
29.07.2013, 02:54 | 3 |
1
|
78 / 60 / 9
Регистрация: 26.06.2013
Сообщений: 198
|
|
29.07.2013, 07:45 | 4 |
Ну, бывает, что и не совсем определенных типов. И не только переменых.
1
|
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
29.07.2013, 09:57 | 5 |
Putney88, если честно на на тему "Эффективное использование указателей", "Как ими пользоваться" и т.д. по списку, можно курсачи писать. Очень трудно всё рассказать, где, зачем, почему и.т.д. Понимание приходит с опытом, написанием программ, чтение чужих кодов, и чтение литературы.
1
|
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 20
|
|
30.07.2013, 13:30 [ТС] | 7 |
Хорошо, поставим вопрос иначе.
Для меня указатели равносильны операции присваиаания, так ли это? И уже новый образовавшийся вопрос : с чего лучше начать практику с указателями. Учусь по Шилдту. 3 базовый курс, усвоил циклы, массивы и все что было вплоть до указателей, иными словами зашел в тупик.
0
|
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
30.07.2013, 13:34 | 8 |
Указатели это тип переменное, а присваивание это операция. Как они могут быть равносильны?
Добавлено через 1 минуту Да с самого элементарного. Операция разыменования, отличие ссылок и указателей, присваивание указателей, взятие адреса. Потом динамические массивы и т.д...
1
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
30.07.2013, 13:39 | 10 |
Наверное имелось в виду, что через указатели можно присвоить значение переменной, на которую они указывают.
1
|
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 20
|
|
30.07.2013, 13:58 [ТС] | 11 |
Да, я пытался это и сказать.
В теории я смотрю на это как на две одинаковые вещи.. не могу уловить различие.. Одно присваивает ячейку памяти другогой переменной. Другое просто передает значение. Извините за глупую наивность, я стараюсь это исправить..
0
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
30.07.2013, 14:09 | 12 |
Putney88, пока вам не потребуются указатели, трудно будет вам объяснить зачем они нужны, да и все свистелки, которые можно с ними зачудить. А главное зачем это вообще все нужно. Пользуйтесь пока знакомыми вам переменными, и потихоньку начните разбираться с динамическими массивами - для первого примера.
1
|
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 20
|
|
30.07.2013, 14:16 [ТС] | 13 |
Пока все что вы делали - только восхищались что я сравниваю несравнимое.
Займусь динамическими массивами.
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||||||||||||||||
30.07.2013, 14:24 | 14 | ||||||||||||||||||||
Наверное один из самых элементарных случаев использования указателей - работа с элементами массива.
Имя массива есть указатель на первый элемент массива.
2
|
Комп_Оратор)
|
|
30.07.2013, 14:30 | 15 |
Putney88, не восхищались, а пытались объяснить, что указатель это переменная имеющая смысл как адрес для косвенного обращения к переменной определённого типа. И тип, во многом, это определяющее слово, задающее возможные операции вроде инициализации, присваивания, приведение к типу и пр. Но если говорить о свойствах типов, даже не затрагивая пользовательские, - можно написать книжку. А есть еще вопросы связанные с видимостью и временем жизни переменной, определяющие возможность таких операций как взятие адреса...
Вот это правильно. Только оставьте динамические массивы char на потом. Посмотрите как всё работает с типом int по подробнее.
1
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
30.07.2013, 14:42 | 16 |
Я бы вот здесь поправил - с динамическими. Потому как работа со статическими массивами гораздо нагляднее посредством индексов-переменных.
2
|
Комп_Оратор)
|
||||||||||||||||
30.07.2013, 15:23 | 18 | |||||||||||||||
Можно бы начать с выделения памяти под одиночную динамическую переменную (сразу после экспериментов со стековыми переменными)). Тогда выделение памяти, инициализация указателя и освобождение памяти складывают какую-то картину. А потом, - динамические массивы.
С другой стороны массив на стеке - хорошее начало для самого первого шага. Как пример косвенного обращения. три целых переменных на стеке:
1
|
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 20
|
|||||||||||
30.07.2013, 20:01 [ТС] | 19 | ||||||||||
Премного благодарен!
Добавлено через 2 часа 51 минуту Но, к сожалению на этом не остановимся.. Исходник:
"Project Project2.exe raised exception class EAccessViolation with message 'Access violation at address 00401174. Write of address 00000001'. Process stopped. Use Step or Run to continue." Синяя полоска покрывает данную строку :
0
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
30.07.2013, 20:05 | 20 |
Указатель неинициализирован. *a - какое у него содержимое по адресу?
1
|
30.07.2013, 20:05 | |
30.07.2013, 20:05 | |
Помогаю со студенческими работами здесь
20
Как обойтись без указателей и указателей на указатель? Различия указателей char* от указателей других типов Создание массивов указателей на массивы указателей Добавление нового указателя в конец массива указателей, удаление указанного элемента, добавление указателей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |