Răspuns :
Răspuns:
Valoarea afisata este 8.
Explicație:
In primul rand sa declaram matricea complet:
int tab[][3]={
{1,7,0},
{2, 8, 9},
{3,0,0},
{4,5,6}
};
Si sa intelegem ce inseamna de fapt tab+3.
Nu asa e stocata matricea in memorie dar ne ajuta sa vedem ce intelege compilatorul.
Cand spunem tab, compilatorul intelege adresa lui AR0:
(pe primul rand valori, pe al 2-lea adrese)
\/\/\/\/
AR0, AR1, AR2, AR3, AR4, ...., AR(n-1), ....
tab+0, tab+1, tab+2, .........................., tab+n-1,....
/\/\/\/\
Unde ARi inseamna adresa primului element de pe randul i al matricii.
Deci cand spunem tab+3, ne referim la adresa lui AR3(randul 4 al matricii):
t = tab+3 sau &tab[3]; (adresa lui AR3)
Pentru prima iteratie avem:
i = 0
Deci 1-i = 1
*t = tab[3] -> (*t)[1-i] = tab[3][1] = 5
v = 0 + 5 = 5
Acum t este decrementat:
t = tab+2 sau &tab[2] (adresa lui AR2)
Pentru a 2-a iteratie:
i = 1
Deci 1 - i = 0
*t = tab[2] -> (*t)[1-i] = tab[2][0] = 3
v = 5 + 3 = 8
t este decrementat:
t = tab+1 sau &tab[1];
For-ul se termina, si in final valoarea variabilei v este 8.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!