-
wen du zB einen array mit 1000 elemten hast und ihn sortieren willst und ihn einer funktion als zeiger übergibst hat das zwei vorteile:erstens ist es schneller und viel wichtiger:nach der funktion ist der array im hauptprog auch sortiert (->gültigkeitsbereiche).beispiel:
Code:
bool sortiereArray(int array){
//bubblesort hier einfügen
return ArraySortiert;}
beim verlassen der funktion hätte sich nix geändert. es gab nämlich 2 arays:eins in der main(oder von welcher funktion es aufgerufen wurde) und eins in der funktion sortiereArray. Das in der sortiereArray-funk ist sortiert aber sobald die funktion verlassen wird wird dieses array gelöscht.
Code:
void sortiereArray(int &Array){
//bubblesort
}
...
main()
...
sortiereArray(int *myArray);
-
Wie "wacked" bereits angesprochen hat:
Wenn du bei dem Thema Rückgabe von Funktionen schon warst , wirst du den Grund verstehen. Damit ist es nur möglich ein (1!) Wert zurückzugeben.
Das ist aber blöd, da du manchmal mehr als einen Wert von einer Variable verändern möchtest.
Dafür gibt es die sogenannten Zeiger und Referenzen. Es hat sich allerdings eingebürgert für solche Aufgaben, wie ich gerade geschildert habe, Pointer, also Zeiger zu verwenden. Die Zeiger erkennst du an dem "*" vor einer zunächst aussehenden Variable. Der Pointer macht nichts anderes, als die Adresse zu speichern und wenn dann der Pointer verändert wird, wird die Zieladresse auf die er zeigt, verändert.
Diese Zieladresse findest du mit einem "&" heraus. Bei der Initialisierung sieht das dann z.B. so aus:
int *Zeiger = &Variable;
Referenzen können zwar auch dazu benutzt werden, aber es hat sich eingebürgert, diese zu benutzen um Arbeit für den Rechner zu sparen. Das heißt, man benutzt sie, wenn man größere Werte einer Funktion übergeben will, sie allerdings nicht ändern möchte. Damit wird verhindert, dass eine 2. Kopie erstellt wird und spart somit Rechnenarbeit.
gruß :) P.S. Wenn du was nicht verstanden hast, dann frag lieber noch mal nach ;)
-
Da das langsam nichts mehr mit dem Bruteforcen von Zahlen zutun hat:
/closed