Sign in Join
Wiki copytemporary

^/fi

^

ASCII:ssa merkkikoodi 94 desimaalisena (tai heksadesimaalisena 5E) on määritelty ^ (circumflex-aksentti) merkiksi.

Jokaista tietotyyppiä varten voidaan osoittaa dataa osoittimen tyypillä (pointer) operaattorin ^ avulla joka on tietotyypin edessä.

pascal
program pointerDemo(input, output, stderr);

type
    listItem = record
        payload: integer;
        // next _points_ _to_ a list item
        next: ^listItem;
    end;

var
    start: ^listItem;

begin
    new(start);
    if not assigned(start) then
    begin
        writeLn(stderr, 'obtaining memory for start failed');
        halt(1);
    end;

Osoitinta (pointer) voidaan seurata, jos se on liitetty lisäämällä tunnisteeseen ^. Sen sijaan, että muistin osoite olisi käsillä, niin nähdään sen osoittaman muistin sisältö. Jos kyseessä on tyypitetty osoitin (typed pointer), kyseisen tyypin toiminnot ja syntaksit ovat voimassa, esim. saa arvokseen seuraavassa esimerkissä.

pascal
    // _de-reference_ the pointer, i.e. follow it
    start^.payload := 7;
    
    dispose(start);
end.

Pyrkimys seurata nil osoitinta aiheuttaa kuitenkin ajonaikaisen virheen (RTE 216 “general protection fault”). Tilanne on, että ehto, not assigned(start) rivillä 15, on tarkoitus saada kiinni.

Katso myös


From the Free Pascal wiki, page "^/fi", as it stood on 2023-02-18 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 25, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.