Przypisanie różnych wartości wskaźników

0

Witam. Mam problem ze wskaźnikami a mianowicie treść zadania jest dla mnie niezbyt jasna..
Sprawdzić efekt przypisania wartości wskaźników dwóch różnych typów.
Czyli mam utworzyć wskaźniki 2 różnych typów (np double i integer) i do nich przypisać jakieś liczby (odpowiednie dla double i integer) ?

0
var ch:PChar;
var X:Integer;
X:=3;
ch:=@X; WriteLn(Ord(ch));
0

OK, następna część mówi, by sprawdzić wszystkie kombinacje wskaźników typu char, integer, real, pointer;
Czy dobrze wykonałem to ?:

program p1;
type
  pointerInt    = ^Integer;
  pointerChar   = ^Char;
  pointerReal   = ^Real;

var
  pint          :pointerInt;
  pchar         :pointerChar;
  preal         :pointerReal;
  p_void        :pointer;

  a_int         :Integer;
  a_char        :Char;
  a_real        :Real;

BEGIN
  a_int         := 22;
  a_char        := 'Z';
  a_real        := 12.23;

  p_void := @a_int;
  writeln('P_Void na inta: ', integer(p_void^));
  p_void := @a_char;
  writeln('P_Void na char: ', char(p_void^));
  p_void := @a_real;
  writeln('P_Void na real: ', real(p_void^):4:2);
  p_void := nil;

  pint := @a_int;
  writeln('PINT wskazujacy na inta: ', pint^);
  pint := @a_char;
  writeln('PINT wskazujacy na char: ', pint^);
  pint := @a_real;
  writeln('PINT wskazujacy na real: ', pint^);
  {
  i tak ze wszystkimi, czyli nastepne by bylo pchar := @a_char;
  pchar := @a_int; itd.. potem z real..
  }
  readln;
END.
1

1.Te typy wskaźnikowe są już zadeklarowane, nie musisz tego robić ręcznie.
2.p_void^ huh? Przecież to nie ma prawa się skompilować. nevermind

0

@Patryk27 kompiluje sie pod free pascalem (z tego co wiem to lazarus ma kompilator free pascala). Dzieki za info, nie wiedziałem że są wbudowane :)
A co do treści, czy zadanie jest dobrze wykonane ?

0

A co do treści, czy zadanie jest dobrze wykonane ?

Tia, wydaje się poprawnie.
Wycofuję moją poprzednią uwagę odnośnie tego p_void^ - to jednak jest okej, głupio spojrzałem :P

0

@Thebestway - według mnie dobrze to robisz, tyle że niepotrzebnie redeklarujesz typy wskaźnikowe, bo masz gotowe do dyspozycji PChar, PInteger i PDouble; Poza tym nie korzystaj z Real tylko z Double, bo ten pierwszy to alias tego drugiego, zostawiony dla wstecznej kompatybilności i na dodatek jest zależny od platformy.

0

@furious programming bardzo bym chciał użyć Double (bo właśnie nie ma PReal przynajmniej u mnie nie łyka tego) ale w poleceniu mam napisane, że musi być real, a nasz wykładowca jest dość czepialski. Dziękuję za odpowiedzi :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1