Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: &-merkki

punppis [12.04.2007 12:33:09]

#

Mitä tuo kyseinen &-merkki tekee esim. tässä koodissa?

void JaaKahdella(int& parametri);

int main() {
  int luku=42;
  JaaKahdella(luku);
  cout << luku;
  return 0;
}

void JaaKahdella(int& parametri) {
  parametri= parametri/2;
}

Eli siis tossa funktiossa on int ja sen jälkeen toi &-merkki, niin mitä se oikein tekee? Ilman kyseistä &-merkkiä ohjelma tulostaa arvon 42, &-merkin kanssa 21. Tämä on sitten opettajan esimerkki ja toi meidän opettaja on tällästä ohjekirjakamaa, joten siltä ei oikein vastauksia heru.

Markus [12.04.2007 12:42:49]

#

Se on viiteparametrin tunnus. Ilman &-merkkiä parametri on arvoparametri.
Viiteparametrin ja arvoparametrin ero on siinä, että arvoparametrissä vain muuttujan arvo viedään (kopioidaan) funktiolle, kun taas viiteparametrissä viedään muuttuja itse.
Arvopametrin tapauksessa muutujan arvon muuttaminen ei siis välity kutsujalle, koska funktio käsittelee vain arvon kopiota.

punppis [12.04.2007 12:57:26]

#

Kiitti. Autto paljon.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta