Variabile de tip pointeri în C – pointer la un obiect (1)

Pointerii sunt variabile care țin o adresă.
Mai ştiinţific spus un pointer este o variabilă a cărui valoare este adresa altei variabile şi care îţi oferă oportunitatea de a accesa orice locaţie de memorie (din punctul acesta de vedere e destul de periculos, dar dacă ştii ce „meştereşti” nu ar fi nici o problemă).
Exista doua tipuri de pointeri:
– pointeri la un obiect
– pointer la o funcție

#include "stdio.h"

void main ()
{
int var = 23; /* declaratia variabilei */
int *ip; /* declaratia variabilei pointer */

ip = &var; /* stocheaza adresa variabilei var in variabila pointer ip*/

printf("Adresa variabilei var este: %pn", &var ); /*%p afiseaza pointer ,
in cazul acesta adresa variabilei var */

/* Adresa stocata in variabila pointer */
printf("Adresa variabilei var stocata in ip este: %pn", ip );

/* Accesarea valorii variabilei folosind pointerul */
printf("Valoare variabilei (*ip) este: %dn", *ip );
}

Alte informaţii despre pointeri

4 comentarii

  1. Adin Răspunde

    Pentru afisearea unui pointer se foloseste %p, nu %x.

    E incorect spus "Adresa variabilei stocata in ip este" pentru ca ip nu stocheaza o variabila ci o adresa.

    E de asemena incorect spus "Valoare de la adresa data de *ip" pentru ca *ip nu e o adresa.

    E redundant sa scrii "ip = &var;" si imediat apoi sa afisezi ip si &var. De vreme ce tocmai le-am egalat, e evident ca vor fi identice.

  2. Simedru Florin Răspunde

    "Pentru afisearea unui pointer se foloseste %p, nu %x."
    %x afișează un număr în hex. Vreau sa afişez adresa în hexa . Care ar fi problema ?

    "E incorect spus "Adresa variabilei stocata in ip este" pentru ca ip nu stochează o variabila ci o adresa."
    Pai clar ca ip nu stochează o variabila ci adresa ei. Chiar asta am vrut sa evidențiez.

    "E de asemena incorect spus "Valoare de la adresa data de *ip" pentru ca *ip nu e o adresa."
    Corect. O să modific.

    "E redundant sa scrii "ip = &var;" si imediat apoi sa afisezi ip si &var. De vreme ce tocmai le-am egalat, e evident ca vor fi identice."
    E doar un exemplu. Nu are neapărat utilitate practică.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *