1 / 7

Puntatori - Cenni

Puntatori - Cenni. Nicola Fanizzi Corso di Programmazione C.d.L. in Informatica DIB - Università degli Studi di Bari. Puntatori. Meccanismo di implementazione del riferimento indiretto ad una risorsa

shirin
Download Presentation

Puntatori - Cenni

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Puntatori - Cenni Nicola FanizziCorso di Programmazione C.d.L. in Informatica DIB - Università degli Studi di Bari

  2. Puntatori • Meccanismo di implementazione del riferimento indiretto ad una risorsa • Utili anche come meccanismo esplicito di manipolazione di risorse dinamiche:dimensione/numerosità della/e risorsa/e puntata decisa a run-time puntatore risorsa

  3. PuntatoriDichiarazione Pascal • Tipo puntatore a variabili di tipo base: type. . . <id-tipo> = ^<id-tipo-base> . . . • Variabile di tipo (anonimo) puntatore a variabili di tipo base: var . . . <id-variabile> : ^<id-tipo-base> . . .

  4. PuntatoriUso • accesso indiretto mediante dereferenziazione: uso di p^ per riferirsi alla variabile puntata • assegnazione ad una variabile dello stesso tipo puntatore p1 := p2o del valore speciale puntatore nullo: nil • confrontop1 = p2 (puntano alla stessa variabile ?) • gestione memoria dinamica:procedure predefinite • new(p) allocazione variabili dinamiche di tipo basee puntamento da parte del puntatore p • dispose(p) rilascio memoria allocata dinamicamente puntata da p

  5. PuntatoriRiferimento indiretto a variabili statiche var k: integer; pk: ^integer; begin k := 3; pk := @k; (* dialetti pascal *) write(pk^); (* stampa 3 *) pk^ := pk^ + 5; write(pk^); (* stampa 8 *) end

  6. Puntatori in PascalAllocazione dinamica var p: ^integer; … new(p); p^ := 3; … dispose(p);

  7. program Puntatori; type pcella = ^cella; cella = record num:integer; pun:pcella end; var t,e: pcella; begin {creazione elemento} new(t); t^.num := 1; t^.pun := nil; {inserzione} new(e); e^.num := 2; e^.pun := nil; t^.pun := e; {inserzione in testa} new(e); e^.num := 3; e^.pun := t; t := e; {distruzione di elemento} e := t^.pun^.pun; dispose(t^.pun); t^.pun := e end. Puntatori in PascalAllocazione dinamica - Esempio t (3, ) (1, ) t (2,-) (1,-) t t (3, ) (1, ) (2,-) (2,-)

More Related