This is an old revision of the document!
În acest laborator veţi învăţa să:
Atunci când declaraţi o variablilă, compilatorul va fi informat despre 2 lucruri: numele variabilei si tipul ei. De exemplu: int n. Astfel, compilatorul va rezerva o zonă de memorie pentru aceasta variabilă (4 octeţi pentru o arhitectură pe 32 biţi).
Atunci când se face o atribuire (ex: n = 7), la zona de memorie rezervată variabilei n va fi scrisă noua valoare.
Pentru ca o funcţie să poată modifica valoarea variabilei n, ea va avea nevoie de adresa la care se află. De exemplu, pentru a citi variabila am scrie:
scanf("%d", &n);
Atunci când declaraţi un vector, de exemplu int v[100], variabila v va reţine adresa primului element al vectorului, deci începutul zonei de memorie care a fost rezervată. Adresa celui de-al i-lea element va fi &v[i], lucru care poate fi scris şi ca v + i.
Dacă vrem să modificăm elementele din v în interiorul unei funcţii va trebui să trimitem ca parametru adresa sa de început, deci chiar v.
Să luăm ca exemplu o funcţie care adaugă un întreg x tuturor elementelor din vectorul v, de n elemente.
void add(int v[], int n, int x) { int i; for (i = 0; i < n; i++) v[i] = v[i] + x; }