Помощь - Поиск - Пользователи - Календарь
Полная версия: Небольшой вопросик
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
spill
Вот такое затруднение: если написать на Паскале так:
Procedure A (Var Data);
Begin
End;

и вызвать так:
Var
I: Integer;
Begin
A (I)
End.
То как к этой бестиповой переменной обращаться в процедуре? Что там будет храниться? Само значение переменной, или адрес?
volvo
Цитата
как к этой бестиповой переменной обращаться в процедуре?
Проще всего - описывать локально переменную по тому же адресу, что и Data:

procedure A(var data);
var MyData: integer absolute Data; { <--- }
begin
writeln(MyData);
MyData := 10;
end;

var
i: integer;
begin
i := 1;
A(i);
writeln(i);
end.

Но если ты не ищешь легких путей - то можно вот так:
procedure A(var data);
type
pT = ^T;
T = integer;
var
p: pT;
begin
writeln(pT(@data)^);
p := pT(@data);
p^ := 15;
end;

var
i: integer;
begin
i := 1;
A(i);
writeln(i);
end.
andriano
Цитата(spill @ 1.01.2008 19:56) *
Само значение переменной, или адрес?
Адрес.
spill
Нет, там дело в том, что в процедуре A я не знаю какого типа будет Data
Michael_Rybak
 ! 
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...

Исправляем.

мисс_граффити
spill, а можно пример задачи, в которой получается, что ты не знаешь тип этой переменной?
ну и соответственно, какие действия собираешься с ней выполнять...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.