Форум: "Основная";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
ВнизДрузья, подскажите для чего нужны указатели, на простом примере Найти похожие ветки
← →
Digitman (2002-04-03 13:03) [1]//объявление статических переменных
var
ptr: Pointer;
val_1: Integer; // пусть она распределена в памяти по некоему адресу 100
val_2: Integer; // 104
val_3: Integer; / 108
...
//занести в переменную указ.типа ptr фактический
//АДРЕС МЕСТОНАХОЖДЕНИЯ В ПАМЯТИ переменной val_1
//(переменной с наименьшим адресом в блоке последовательно
//следующих переменных одного и того же типа)
ptr := @Val_1;
for i:= 0 to 2 do begin
//взять из переменной ptr ее текущее значение и,
//рассматривая это значение как указатель на нечто в памяти, к чему мы хотим обратиться,
// говорим компилятору : это "нечто" есть целочисленная переменная, поэтому "не ругайся", что мы этому "нечто" присваиваем значение, равное значению переменной цикла i
Integer(ptr^) := i; // переменная ptr примет значение 100
//теперь для обращения к переменным val_2 (по адресу 104) и val_3 (по адресу 108)
//достаточно изменить содержимое переменной ptr так, чтобы при
//следующих итерациях оно указывало на соответствующие адреса этих переменных
//посему - просто увеличим значение переменной ptr
//на величину, равную размеру целочисленной переменной (4 байта)
Inc(Cardinal(p), sizeof(integer));
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c