Variabile de tip pointeri în C

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ă).
 

Tipuri de pointeri

Exista doua tipuri de pointeri:
– pointeri la un obiect
– pointer la o funcție

#include "stdio.h"<br /><br />void main ()<br />{<br />   int  var = 23;   /* declaratia variabilei */<br />   int  *ip;        /* declaratia variabilei pointer */<br /><br />   ip = &var;  /* stocheaza adresa variabilei var in variabila pointer ip*/<br /><br />   printf("Adresa variabilei var este: %pn", &var  ); /*%p afiseaza pointer , <br />   in cazul acesta adresa variabilei var */<br /><br />   /* Adresa stocata in variabila pointer */<br />   printf("Adresa variabilei var stocata in ip este: %pn", ip );<br /><br />   /* Accesarea valorii variabilei folosind pointerul */<br />   printf("Valoare variabilei (*ip) este: %dn", *ip );<br />}<br />

Documentație

Alte informaţii despre pointeri

https://www.programiz.com/c-programming/c-pointers 

De admin

4 thoughts on “Variabile de tip pointeri în C – pointer la un obiect (1)”
  1. 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. "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 *


The reCAPTCHA verification period has expired. Please reload the page.