Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 057
от 20.11.2002, 19:10

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 100
Отправлено ответов: 255
Активность: 255 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

X-RayMan
Статус: Начальный
Общий рейтинг: 140
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 117.44
[Подробней >>]
neax
Статус: Начальный
Общий рейтинг: 166.66
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 99. Hello уважаемые экспетры!!! Большая просьба объясните пожалуйста как работать с указателями и сылка... (ответов: 3)

Вопросов: 1, ответов: 3


 Вопрос № 99

Hello уважаемые экспетры!!!
Большая просьба объясните пожалуйста как
работать с указателями и сылками есле можно
то на примерах не сильно сложных прог. Дока
на эту тему тоже приветствуется. Ответы
можете сразу на мыло слатью. Надеюсь на
вашу помощь.



Вопрос отправлен: 17.11.2002, 19:08
Отправитель: Ilu (ilua_m@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает X-RayMan

Доброго времени суток, Ilu!
Лови на мыло.

Ответ отправлен: 18.11.2002, 02:07
Отправитель: X-RayMan


Отвечает Ayl

Доброе время суток, Ilu!
А в чем сложность-то? При заведении обычной переменной (статической) компилятор выделяет для нее необходимое число байт в сегменте данных. При создании переменной, являющейся указателем на что-то, компилятор выделяет для нее 4 байта, в которых будет записан адрес памяти, начиная с которого находится значение переменной. Но для этого нужно выполнить одно из двух действий:
1. Или выделить память под значение с помощью функции New
2. Или присвоить переменной-указателю значение другой переменной-указателя, адрес ОП, адрес процедуры/функции и т.п.
Указатель определяется следующим образом:
Type
PType = ^TType;
где TType - имя любого типа данных, кроме файлового.
Теперь, если описать переменную p типа PType, то тогда выражение p^ даст значение типа TType.
Например (см. Приложение).
Также существует абстрактный тип Pointer, совместимый с любым указателем. К нему нельзя применять операцию разыменования (^) до тех пор, пока не будет произведена операция приведения типа. Например:
Type
PInt = Integer;
Var
p : Pointer;
Begin
p := New (PInt);
PInt (p)^ := 5;
End.


Приложение:

Ответ отправлен: 18.11.2002, 11:47
Отправитель: Ayl


Отвечает neax

Доброе время суток, Ilu!
Все очень просто!
Так как эта тема немного сложновата – то мне прийдеться объяснить поподробнее…
Указатель – это переменная, значением которой является адрес другой переменной или структуры данных.
Указатели тоже объявляются в разделе объявления переменных.
На пример:
ИМЯ: ^ТИП;
Где занчок ^ показывает, что объявляемая переменная являеться указателем.
Есть несколько примеров:
- Указателю можно присвоить адрес переменной соответствующего типа. В приведенном примере Р будет содержать адрес переменной N. p := @n;
- Указателю можно присвоить значение другого указателя, при условии, что они являються указателями на переменную одного типа. p2 := p1; переменные p1 и p2 указывают на одну и ту же переменную.
- Если Р указывает на переменную I, то в результате выполнения инструкции p^ := 5; значение переменной I будет равно пяти. Значок ^ показывает, что знач. 5 присваиваеться переменной, на которую указывает переменная-указатель.

Приложение:

Ответ отправлен: 19.11.2002, 04:47
Отправитель: neax



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (42)
C / C++ (30)
Perl (8)
Delphi (13)
Pascal (21)
Basic / VBA (11)
Java / JavaScript (13)
PHP (11)
MySQL / MSSQL (9)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (21)
"Железо" (27)
Поиск информации (17)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (16)
Юристу
Гражданское право (7)
Семейное право (2)
Трудовое право (3)
КоАП (2)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное