Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизКак работать с адресом? Найти похожие ветки
← →
Mozaika_81 (2006-04-03 11:06) [0]Добрый день! Вот пытаюсь разобрать вчерашнюю лекцию про адреса...
Сразу скаже, мало ясно, но хотелось бы при помощи Настоящих Мастеров разобраться в теме с мааааааленьким примерчиком и пояснением к нему :) Буду благодарна за любую подсказку.
p.s. Про F1 и Help не предлагать - СПРАВКА БИТАЯ :(((
← →
Ega23 © (2006-04-03 11:08) [1]
> p.s. Про F1 и Help не предлагать - СПРАВКА БИТАЯ :(((
>
Лечи, ибо без этого - никуда.
← →
sniknik © (2006-04-03 11:14) [2]> но хотелось бы при помощи Настоящих Мастеров
настоящие мастера мелочами не занимаются... отвлекаясь на всякую фигню мастером не станеш. (вот "развеятся" и потрепатся, можно.)
=======================================
если к вам офис пришол посетитель, и непременно требует "Самого Главного"... гоните его прочь, это наверняка сумашедший... © ктото из великих.
← →
Mozaika_81 (2006-04-03 11:15) [3]Лечи, ибо без этого - никуда
Эх, легко сказать! Город маленький и бедный, нормальных дисков почти нет.
Третий диск по дельфи уже купила. И в который раз установка дельфи с ошибками. На одном вообще справки и даже Demo нету :(
Ребята, мне хотя бы простой маленький пример, а остальное я может и схвачу. Только укажите, куда мне топать :)
← →
balepa © (2006-04-03 11:27) [4]А про какие адреса ?
А топать надо в др. город где есть нормальная Delphi
← →
Mozaika_81 (2006-04-03 11:30) [5]А про какие адреса ?
Ну народ....
Про pointer (или ^).
А топать надо в др. город где есть нормальная Delphi
А денег дашь на поезд туда и обратно?
← →
Плохиш © (2006-04-03 11:35) [6]
> Mozaika_81 (03.04.06 11:06)
> Добрый день! Вот пытаюсь разобрать вчерашнюю лекцию про
> адреса...
> Сразу скаже, мало ясно
Вот, препод - гад! Ни лекцию прочитать, ни на вопросы не отвечает. Куды беднаму стьюденту податьси?
← →
Ega23 © (2006-04-03 11:36) [7]
> Про pointer (или ^).
А что с ними не ясно?
← →
Mozaika_81 (2006-04-03 11:40) [8]А что с ними не ясно?
Ega23! Прошу тебя помоги!
Мне не понять, как работать! Ну хотя бы как сослаться и для чего это нужно? А на счет бедности... такова жизнь :(
← →
balepa © (2006-04-03 11:40) [9]
> Mozaika_81 (03.04.06 11:30) [5]
> А про какие адреса ?
>
> Ну народ....
> Про pointer (или ^).
Молчала бы уж.. Еще бывают адреса переменных, процедур, функций и методов.(@)
А чего непонятно ?
> А топать надо в др. город где есть нормальная Delphi
> А денег дашь на поезд туда и обратно?
А че ближайший город Нью-Йорк. Можно в инете книжку поискать.
← →
Ega23 © (2006-04-03 11:43) [10]Ты представляешь себе, сколько придётся здесь писать, чтобы объяснить, что такое адрес, что такое указатель, что такое указатель на указатель и как со всем этим работать?
И поверь, никто этим заниматься не будет, т.к. все люди весьма занятые.
Ты можешь получить конкретный ответ на конкретный вопрос. А на вопрос, типа
> Мне не понять, как работать! Ну хотя бы как сослаться и
> для чего это нужно?
рекомендую обратиться к лектору. Он объяснит. У него работа такая
← →
Mozaika_81 (2006-04-03 11:45) [11]Еще бывают адреса переменных, процедур, функций и методов.(@)
А чего непонятно ?
Вот про это я пытаюсь что-нить узнать :)
Да и молчу.... Такой я человек.
А че ближайший город Нью-Йорк. Можно в инете книжку поискать
Ищу - не найду..
Я уже говорила, что денег нету. А инет это папа исключение сделал (пузырек мужикам в АСУ и все дела) но на один день, что очень огорчает.
← →
Плохиш © (2006-04-03 11:45) [12]
> Mozaika_81 (03.04.06 11:06)
> p.s. Про F1 и Help не предлагать - СПРАВКА БИТАЯ :(((
Без проблем, на не битую, прочитаешь продолжение получишь.
Das folgende Beispiel zeigt, wie Zeiger funktionieren:
1 var
2 X, Y: Integer; // X und Y sind Integer-Variablen
3 P: ^Integer; // P zeigt auf eine Integer
4 begin
5 X := 17; // X einen Wert zuweisen
6 P := @X; // Adresse von X an P zuweisen
7 Y := P^; // P dereferenzieren, Ergebnis Y zuweisen
8 end;
In Zeile 2 werden X und Y als Integer-Variablen deklariert. Zeile 3 deklariert P als Zeiger auf einen Integer-Wert. P kann also auf die Position von X oder Y zeigen. In Zeile 5 wird X ein Wert zugewiesen. Zeile 6 weist P die Adresse von X (angegeben durch @X) zu. Schließlich wird in Zeile 7 der Wert an der Adresse ermittelt, auf die P zeigt (angegeben durch ^P), und Y zugewiesen. Nach der Ausführung dieses Programms haben X und Y denselben Wert (17).
Der Operator @ wird hier verwendet, um die Adresse einer Variablen zu ermitteln. Sie können diesen Operator aber auch für Funktionen und Prozeduren einsetzen. Weitere Informationen hierzu finden Sie unter Der Operator @ und Prozedurale Typen in Anweisungen und Ausdrücken.
Wie das obige Beispiel zeigt, erfüllt das Symbol ^ zwei Funktionen. Es kann vor einem Typbezeichner stehen. Beispiel:
^Typname
In diesem Fall bezeichnet das Symbol einen Typ, der Zeiger auf Variablen des Typs Typname darstellt. Das Symbol ^ kann aber auch auf eine Zeigervariable folgen:
Zeiger^
In diesem Fall dereferenziert das Symbol den Zeiger, liefert also den Wert an der Speicheradresse, die der Zeiger angibt.
← →
Gydvin © (2006-04-03 11:50) [13]balepa © (03.04.06 11:40) [9]
Ну зачем так с девушкой.
Mozaika_81
Сходи сюда, может найдешь что тебе нужно
http://www.intuit.ru/department/pl/plpascal/10/
← →
Mozaika_81 (2006-04-03 11:56) [14]Сходи сюда, может найдешь что тебе нужно
Хочу сказать БОЛЬШОЕ СПАСИБО за помощь!!!!!!!
То чно нужно, то что искала!!!
Сейчас все перепишу!!!
ОЧЕНЬ-приОЧЕНЬ БЛАГОДПРНА Gydvin"у за ОЧЕНЬ хорошую ссылку нужной мне теме! :)))))))))))))))))))))
← →
Gydvin © (2006-04-03 12:02) [15]Mozaika_81 (03.04.06 11:56) [14]
Вообще гугл реально рулит))
← →
Юрий Зотов © (2006-04-03 12:20) [16]> Mozaika_81
Все очень просто. Когда программа работает, ее машинный код и данные, которые он обрабатывает, расположены в памяти. Память можно представить, как непрерывную цепочку байтов и адрес в памяти - это просто номер байта в этой цепочке, считая от нуля. По этому адресу (т.е., в байте с этим номером) могут быть расположены либо код программы, либо ее данные.
Указатель - это переменная, содержащая адрес. Указатели бывают типизированные и нетипизированные. Типизированный указатель содержит адрес, по которому расположены данные (или код) строго определеного типа, а нетипизированный указатель может содержать адрес чего угодно.
Пусть, например, есть такой фрагмент программы:
type
TProc: procedure; // Это тип процедуры без параметров.
var
I: Integer; // Эта переменная может содержать целое число.
PI: ^Integer; // А эта переменная может содержать АДРЕС целого числа.
PP: TProc; // А это будет адрес начала кода процедуры типа TProc
procedure Proc1;
begin
I := 3; // Теперь I равно 3;
PI := @I; // Теперь PI содержит адрес I
PI^ := 5; // А теперь I равно уже 5;
end;
procedure Proc2;
begin
PI^ := I + 7; // Число, расположенное по адресу, который хранится в PI,
// будет сдержать сумму I и 7.
end;
begin
PP := @Proc1; // Теперь PP хранит адрес Proc1;
PP; // Вызвали Proc1 и I стало равно 5, а PI хранит адрес I;
PP := @Proc2; // А теперь PP уже хранит адрес Proc2;
PP; // Вызвали Proc2 и I стало равно 12;
Вот и вся наука. Для завершения темы разберитесь с New-Dispose и GetMem-FreeMem.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.036 c