Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




POINTER SI TABLOURI UNIDIMENSIONALE

c


POINTER SI TABLOURI UNIDIMENSIONALE

In urmatorul exemplu de program se defineste un sit de caractere de dimensiune maxima 8 elemente initializate cu : abc).



Exemplu 5.4.1.

main ( )

La executie se va afisa : abc ) adica elementele sirului pana la caracterul NULL (' \ o ').

In exemplul de mai sus S s-a declarat ca masiv unidimensional (sir) de maxim 8 elemente , dar in program s-au utilizat 5 elemente. Mai mult decat atat S se putea declara ca parametru la o functie ca tablou deschis :

char s[ ] ;

pentru ca in aceasta situatie alocarea spatiului de memorie necesar se face dinamic . Acest lucru este permis deoarece in limbajul C numele S al sirului este automat convertit la un pointer catre primul element al sirului. Acest pointer este constant in sensul ca este ilegal a se modifica ( prin atribuiri) in program, deci nu este o parte stanga.

Inseamna ca declaratiile:

char s[ ] ;

si

char *s ;

sunt echivalente, cu observatia ca in primul caz S este un pointer constant, initializat cu adresa lui S[O], iar in al doilea caz este un pointer obisnuit si neinitializat.

Aceasta echivalenta ne permite sa transmitem ca parametri unei functii siruri, matrici etc. prin pointeri catre primul lor element.

Deci o functie care prelucreaza elementele unui sir poate arata:

void f (char s[ ])

sau    In ambele exemple, sfarsitul sirului s va fi determinat de detectarea

void f (char * s) caracterului ' \ o ' .

Al doilea tip de functie foloseste ca argument o adresa si de aceea in acest caz se mai spune ca apelul este prin referinta ( in engleza call by adress).

Totusi, in cazul masivelor multidimensionale care sunt parametrii unei functii numai prin dimensiune poate lipsi.

Ex. int f ( float a [ ] [10])

In acest exemplu parametrul functiei f este un pointer catre primul element a unei matrici cu 10 coloane.



Document Info


Accesari: 1562
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )