#1 27. Juni 2008 Frage zu Unterprogrammen Hi, es gibt ja verschiedene arten ein Unterprogramm zu definieren sag ich jetzt mal. Hierzu hab ich ein paar Fragen: Bsp: Code: void a_v(float x_a) --> Was bedeutet hier mein void? Für was brauche ich das? Code: void a_v(float *x_a) --> Wieso übergebe ich hier einen Zeiger? Code: float *suche( float * z_a, float ** a_zeig, int anzahl) --> für was brauche ich float am anfang? und den Zeiger? Code: void a_fkt(&fkt) --> was sagt hier das & ? Wäre nett wenn ihr mir helfen könntet. Bin mir da meist ziemlich unsicher was das alles bezwecken soll. + Multi-Zitat Zitieren
#2 27. Juni 2008 AW: Frage zu Unterprogrammen Hey! Basics lernen: C++-Programmierung – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher C++-Programmierung: Variablen und Konstanten – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher http://en.wikibooks.org/wiki/C%2B%2B_Programming/Operators#address-of_operator_.22.26.22 http://en.wikibooks.org/wiki/C%2B%2B_Programming/Operators#Dereferencing_Operator_.22.2A.22 Mfg, Kolazomai + Multi-Zitat Zitieren
#3 28. Juni 2008 AW: Frage zu Unterprogrammen Code: void a_v(float x_a) Das VOID bedeuted (Eng: leer) das keine Variable zurückgegeben wird. Code: void a_v(float *x_a) Du übergibst (wahrscheinlich) einen Zeiger weil die Funktion deine Variable verändern wird und damit diese nicht unnötig neuen Speicher allokieren muss gibst du ihr die Speicheradresse deiner bereits vorhandenen Variable. Code: float *suche( float * z_a, float ** a_zeig, int anzahl) Float am anfang ist der Rückgabetyp der Funktion , dasheißt wenn du sie aufrufst wird dir eine Variable vom Typ Float (Gleitkommazahl) zurückgegben : Code: float A=suche(&b,&c,10); Dann ist die variable A dein Ergebniss. Code: void a_fkt(&fkt) Das & (amersand, oder kaufmännisches "UND") wird dazu verwendet nicht die Variable dazustellen sondern die Speicheradresse wo die Varibale sich befindet. Eine Funktion die einen Zeiger erfordert wird eine von dir erstelle "Lokale" oder "Globale" Variable nur mit einem vorangestellten & annehmen (ausser die Variable selbst ist ein Zeiger, dann natürlich unnötig.) Mfg, Inqui. + Multi-Zitat Zitieren
#4 28. Juni 2008 AW: Frage zu Unterprogrammen Das letzte von Inquisito ist nicht ganz richtig. Code: void a_fkt(&fkt) Normalerweiße steht das & wirklich als Addressparameter, d.h. die Addresse der Variable wird zurückgegeben. Im Funktionsrumpf steht das & aber für eine Referenz. Das is ähnlich wie ein Zeiger, nur bissl leichter zu verwenden und sicherer. + Multi-Zitat Zitieren
#5 28. Juni 2008 AW: Frage zu Unterprogrammen Danke erstmal, habe euch alle bewertet. + Multi-Zitat Zitieren
#6 28. Juni 2008 AW: Frage zu Unterprogrammen Verdammt jetzt wo du es sagst, stimmt. Danke für die Korrigierung. + Multi-Zitat Zitieren
#7 21. Juli 2008 AW: Frage zu Unterprogrammen Fast richtig, als Rückgabe bekommt man einen float zeiger. Anmerkung: wenn die variable auf die der Rückgabe Zeiger zeigt, in der Funktion deklariert wird. Geht die Variable beim verlassen der Funktion verloren und wenn versucht wird auf den Float Zeiger zu zugreifen, wird eine fehlerhafte ausgabe erreicht. Da der Speicherbereich nicht mehr von der Original Float Zahl genutzt wird. Also Vorsicht. + Multi-Zitat Zitieren