IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> указатели, объясните, пожалуйста.
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 99
Пол: Женский
Реальное имя: vera

Репутация: -  0  +


Только начала изучать указатели. Не совсем все понимаю. В частности не мог бы кто-нибудь объяснить простой пример :

program Pointer1;
type
TArr = array[1..5] of integer;
var
PArr: лТАгг; {Указатель на массив}
Arr: TArr;
i: integer;
begin
PArr := @Arr; {PArr содержит адрес первого элемента массива Arr}
for i := 1 to 5 do
begin
Write(1,'-й элемент массива = ');
Readln(PArrA[i]); {Учитывая то, что PArr указывает
на первый элемент массива Arr,
PArrA - это аналог идентификатора Arr}
end;
for i := 1 to 5 do
begin
PArr := @Arr[i]; {PArr содержит адрес i-го элемента массива Arr}
Writeln(PArrA[1]); {PArrA - значение i-го элемента массива}
end;
end.


Не понятно почему указывает на первый элемент :
PArr := @Arr; {PArr содержит адрес первого элемента массива Arr}

и

PArr := @Arr[i]; {PArr содержит адрес i-го элемента массива Arr}
Writeln(PArrA[1]); {PArrA - значение i-го элемента массива}


Совершенно непонятно что там делает Единица .Writeln(PArrA[1]);

Объясните пожалуйста и Не ругайтесь, только). Действительно хочу разобраться.

Сообщение отредактировано: lopata -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 99
Пол: Женский
Реальное имя: vera

Репутация: -  0  +


как бы тебе сказать...у меня все откомпилировалось...
PROGRAM Din;
USES Wincrt;
TYPE
TArr = array [1..5] of integer;
VAR
PArr : ^TArr;
Arr : Tarr;
i : integer;
Begin
PArr := @Arr;
for i := 1 to 5 do
begin
Write(i,'-tyi element of array = ');
Read(Parr^[i])
end;
for i := 1 to 5 do
begin
Parr := @Arr[i];
WriteLn(Parr^[1]);
end;
End.


Добавлено через 8 мин.
и зачем указывать на первый элемент массива?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 15.05.2024 7:24
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name