Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Recursivitate  (Citit de 1172 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Peter
Strain
*

Karma: -10
Deconectat Deconectat

Mesaje: 31



Vezi Profilul
« : Ianuarie 13, 2014, 19:09:40 »

Salut. Ce rol are "&" in secventa urmatoare?

Cod:
#include <iostream>
using namespace std;
int f(int &a,int b)
{
a=a-1;
b=a+1;
cout<<a<<b;
}
int main()
{
int a,b;
a=5;
b=9;
f(a,b);
cout<<a<<b;
}

In cazul asta o sa afiseze 2329, iar daca nu pun "&"  o sa afiseze 2339.  Din cate am inteles, acest "&" inlocuieste valoarea lui a peste tot cu valoarea lui a prelucrata in functie; chiar daca in main i-am dat lui a valoarea 3, el o sa o considere 2 (a-1). Stiu ca "&" se foloseste la pointeri, dar nu am facut pointeri la scoala Neutral
Memorat
TheNechiz
De-al casei
***

Karma: 30
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #1 : Ianuarie 13, 2014, 20:13:53 »

Parametrul a este transmis prin referință. Nu se lucrează cu valoare lui a, ci cu valoarea de la adresa lui a ( o să vezi la pointeri ). Ideea este că valoarea lui a se modifică. Funcția returnează o valoare prin intermediul parametrului a.

Nu am înțeles cum ție îți afișează rezultatele alea. Sunt mai mult ca sigur că ai greșit ceva.
Trebuie să afișeze în cazul 1 : 4549 și în cazul 2 : 4559

A treia cifră a numărul este valoarea lui a afișată din main. În primul caz valoarea variabilei a s-a schimbat, în al doilea a rămas aceeași. Smile
Memorat
Peter
Strain
*

Karma: -10
Deconectat Deconectat

Mesaje: 31



Vezi Profilul
« Răspunde #2 : Ianuarie 13, 2014, 20:20:47 »

Multumesc mult. Acum am inteles. Valorile alea le-am pus gresit pentru ca lucrasem cu mai multe exemplu si am uitat sa le modific.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines