Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


POINTERI

c



+ Font mai mare | - Font mai mic



POINTERI

Un pointer este o variabila care pastreaza adresa unui obiect de tip corespunzator. Forma generala pentru declararea unei variabile pointer este:



tip * nume_variabila;

unde tip poate fi oricare din tipurile de baza admise in C, iar nume_variabila este numele variabilei pointer. Tipul de baza al pointerului defineste tipul variabilelor spre care indica pointerul.

Variabila pointer este o variabila de un tip special, aparte de tipurile char, int, float. Cuvantul cheie tip din declaratia unui pointer se refera la tipul de data spre care indica pointerul, nu la formatul in care se stocheaza efectiv o variabila pointer in memorie. Formatul in care se stocheaza o variabila pointer in memorie depinde de tipul de compilator care se foloseste, deci depinde in mare masura de tipul procesorului pentru care a fost proiectat compilatorul. O indicatie despre formatul in care se stocheaza o variabila pointer in memorie poate fi obtinuta prin tiparirea continutului unei variabile pointer (o adresa) utilizand printf() cu formatul %p.

Exemplu:

char *p;     /* pointer la caracter */

int *temps, *start; /* pointeri la intregi */

char *const q; /* pointer constant la caracter */

7.1. Operatori pointer

Exista doi operatori pointer speciali * si &:

Operatorul & este un operator unar care ofera (returneaza) adresa unei variabile (adresa operandului sau).

Operatorul * este complementarul lui &. Este un operator unar care returneaza valoarea variabilei plasata la adresa care urmeaza dupa acest operator.

Exemplu:

# include <stdio.h>



void main (void)

Spre exemplu, sa consideram portiunea de program:

short i, j; // i si j sunt ambele intregi scurti

short *p // p este pointer la tip intreg scurt

i = 123;

p = &i;

j = *p;

Sa presupunem ca zona de stocare a celor trei variabile arata astfel:

Dupa primele doua atribuiri

i = 123;

p = &i;

zona de stocare va arata astfel:

Continutul variabilei p (de tip pointer) va fi valoarea 1200, adica adresa variabilei i.

Instructiunea j = *p; copiaza un intreg scurt de la locatia 1200 in j, locatiile de memorie fiind acum ca cele din figura:




Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 661
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved