Einzelnen Beitrag anzeigen
Alt 28.05.2003, 10:55   #7
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

c/c++/alle sprachen die das unterstützden


bsp für call by value

Code:
int main (void)
{
  int a = 10;
  
  increase(a);
  printf ("%d", a);
}

void increase (int var)
{
  var ++;
}
ausgabe hier ist 10, da der wert von a kopiert wird, in increase nur der kopierte wert erhöht wird, der originale wert aber gleich bleibt

Code:
int main (void)
{
  int a = 10;
  increase (&a);
  printf ("%d", a);
}

void increase (int* var)
{
  (*var)++;
}
ausgabe is 11, da die adresse von a übergeben wird, in increase der wert an der übergebenen adresse erhöht wird -> call by reference.

int* var ist ein pointer auf den speicherbereich eines ints mit dem namen var.
sprich ein pointer zeigt immer auf einen speicherbereich eines bestimmten typs, der wert eines pointers ist nur die adresse, auf die er zeigt
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten