Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  


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


Indexarea pointerilor

c

+ Font mai mare | - Font mai mic





DOCUMENTE SIMILARE

Trimite pe Messenger
Indexarea pointerilor
INSTRUCTIUNI DE DECIZIE - if-else, switch
Pointeri - Notiunea de pointer
Tablouri unidimensionale
Verificarea existentei a x elemente pare intr-o lista liniara
Modifica informatia nodului cu info=para din lista
Algoritmi divide et impera
Instructiunea continue
FUNCTII. TRANSMITEREA PARAMETRILOR. RECURSIVITATE.
ARBORI

TERMENI importanti pentru acest document

Indexarea pointerilor

In C, daca p este un pointer, iar i este intreg, p[i] este identic cu *(p+i). Daca avem declaratiile:

short q[100];




short *pq

atunci sunt permise si posibile urmatoarele declaratii:

Varianta cu tablou

Varianta cu pointeri

Descriere

pq=&q[0]

pq=q

pq=&q[0]

pq=q

Pointerul pq indica adresa primului element al tabloului q

q[n]

pq[n]

*(pq+n)

pq[n] inseamna acelasi lucru cu *(pq+n)

In C, daca se pune un index unui pointer, ca in pq[n], atunci se considera aceasta utilizare echivalenta cu *(pq+n). Cu alte cuvinte, orice referire la pq[n] inseamna acelasi lucru cu valoarea de la adresa (pq+n).

Exemplu: Programul urmator realizeaza tiparirea pe ecran a numerelor cuprinse intre 1 si 10.

void main (void) ;

int *p, i;

p = v; /* p indica spre v */



for (i=0;i<10;i++) printf ('%d', p[i]); }

Utilizarea constantelor sir in locul poinetrilor la caractere este posibila dar nu este uzuala.

Exemplu:

# include <stdio.h>

void main()

Exemplu de utilizare a stivei. Stiva este o lista cu acces tip LIFO (last in - first out). Pentru a avea acces la elementele stivei, se utilizeaza doua rutine: push() si pop(). Calculatorul pastreaza stiva intr-un tablou, iar rutinele push() si pop() realizeaza accesul la elementele stivei utilizand pointeri. Pentru memorarea varfului stivei, utilizam variabila tos (top of stack).

Consideram ca folosim numai numere de tip intreg. In programul main(), rutinele push() si pop() sunt utilizate astfel: push() citeste numerele introduse de la tastatura si le memoreaza in stiva daca acestea sunt nenule. Cand se introduce un zero, pop() extrage valoarea din stiva.

# include <stdlib.h>

# include <stdio.h>

void push(); /* Prototipul functiei push() */

int pop();    /* Prototipul functiei pop() */

// Se rezerva pentru stiva 50x4 = 200 locatii

int stack[50];

int *p1, *tos;

void    main(void) while (value != -1);

void push(int i) /* Functia push() */

*p1 = i;

printf('introdus in stivan');

int pop()

p1 --;

return *(p1+1); }






Politica de confidentialitate



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 465
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 2022 . All rights reserved

Distribuie URL

Adauga cod HTML in site