argument funkcji odebrany przez referencje ?

0

Witam jestem poczatkujacym i chcialbym sie dowiedziec czym roznia sie te zapisy

 
void funkcja(int &zmienna)
{
   cos tam robi
}
void funkcjaa(int zmienna)
{
  cos tam robi
}

int main()
{
 int a = 10;
funkcja(a);
///////////
int b = 10;
funkcjaa(&a);

 return 0;
}
2

Na początek najważniejszą różnicą jest to, że druga funkcja się nie skompiluje przy takim przekazywaniu argumentów.

prog.cpp: In function 'int main()':
prog.cpp12: error: invalid conversion from 'int*' to 'int' [-fpermissive]
funkcjaa(&a);

0

Przepraszam nie zauwazylem!!
chodzi mi o to ze raz w funkcji odbieramy cos przez referencje

void funkcja(int& cos) { cos tam robi} 

, a nie raz do funkcji (w deklaracji funkcji w mainie) wysylamy referencje jakas_funkcja(& zmienna)

 ?


Czyli raz cos odbieramy przez referencje a raz w deklaracji posylamy referencje (wiem ze zamotalem zapewno :d)
0

a np takie cos
Tutaj jako argument funkcji jest definicja tablicy o rozmiarze 10 ? (czyli mam podany rozmiar czyli ciag pamieci w ktorym dana tablica sie znajduje tak ? )

int funkcja(int&tablica[10])
{
    return cos tam;
}

natomiast tu
int funkcja(int& tablica)
Mamy jedynie adres poczatku tej tablicy ? (ale nie wiemy jaki rozmiar )

0

Znowu przekombinowałeś ;)

error: declaration of 'tablica' as array of references

1

Nie wiem w sumie jakie jest pytanie, ale przeczytaj to: Przekazywanie parametru przez wartość i referencję
Po przeczytaniu jak nadal będziesz miał wątpliwości to zadaj pytanie z kodem, który się kompiluje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1