For faster navigation, this Iframe is preloading the Wikiwand page for Punter (programació).

Punter (programació)

Un punter o apuntador és una variable manipulable la qual fa referència a una regió de la memòria; així, el programador, en comptes de manipular la variable en si, treballa amb l'adreça de memòria en la qual la dada es troba emmagatzemada.[1][2]

Els apuntadors s'utilitzen àmpliament en programació i gairebé tots els llenguatges de programació permeten la seva manipulació. La raó principal de l'existència dels apuntadors o punters resideix en la manipulació de dades situades en la zona de memòria dinàmica o heap (encara que també es poden manipular objectes en la zona estàtica). Les dades poden ser elementals, estructures (struct en C) o objectes que pertanyen a una classe (en llenguatges orientats a objectes). Gràcies a aquesta propietat, els apuntadors permeten modelar un graf, on els elements d'aquest són les dades residents en memòria i les relacions entre els elements són els mateixos apuntadors. Tot i així, els punters són un gran maldecap per a tots aquells programadors novells i, fins i tot, per als experimentats.

En el cas del llenguatge Java i similars no existeix cap diferenciació entre apuntadors ni variables, ja que qualsevol variable és un apuntador. Això és conseqüència d'una característica particular de Java, on qualsevol dada és un "objecte" que pertany a una classe, i per tant, cada objecte ha de ser instanciat mitjançant la paraula reservada "new" (excepte els tipus de dades elementals, que tot i que segueixen sent objectes, no necessiten ser instanciats amb "new"), i això força l'emmagatzematge d'aquestes dades en la memòria heap.

Exemple

[modifica]

Ús d'apuntadors en una estructura en C:

struct Element { // Exemple d'un node d'una llista doble enllaçada
int dada;
struct Element * següent; // Per a la declaració d'un punter es fa servir *
struct Element * anterior;
};

Per a accedir als atributs com a punters d'una estructura, s'ha d'utilitzar la següent notació: ->. De forma que:

Element *elem; 
Element sig = elem->següent;

Referències

[modifica]
  1. Durán, Jorge. «▷ ¿Qué es un puntero y cómo se usan? - 【Actualizado 2021】» (en castellà), 2021-06-04CEST08:30:13+02:00. [Consulta: 24 agost 2021].
  2. «[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5te.htm d97. Fonaments de Programaci�. Llenguatge C/C++. M�dul 5. Resum Te�ric.]». [Consulta: 24 agost 2021].

{{bottomLinkPreText}} {{bottomLinkText}}
Punter (programació)
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?