Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » return, rückgabewerte...???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.01.2008, 11:08 Uhr
wolf360



Okey ich Programmier etz scho a bisl länger, und ich hab auch gehofft irgendwann komm ich dahinter was es mit dem return 0 aufsich hat, aber irgendwie kappier ichs nicht. Ich weiß nur das es eine Funktion beendet.

Wofür genau ist jetzt das return?

Da ich jetzt auch grad bei C++ bin kappier ich dann des überhaupt nicht:


C++:
int area (int i, int i2){
int test;
test = i*i2;
return test;
}



und was hat es mit den Rückgabewerten auf sich?
Warum mach ich z.B

C++:
int c;
while((c=cin.get()) != EOF)
  cout << (char)c;
}



gruß wolf360
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.01.2008, 11:15 Uhr
xXx
Devil


Hmm? Nunja du gibst ja im Funktionskopf den Rückgabetyp (int) den Funktionsnamen(area) und die Parameter und deren Typ (int i, int i2).

Von dem im Funktionskopf angegebenen Typ muss auch der Rückgabetyp, den du mit return zurück gibst, sein. Wenn du void als Rückgabetyp angibst, kannst du keinen Wert zurück geben. Kannst die Funktion aber dennoch vorher verlassen in dem du return; anstelle von return wert angibst.

Durch return verlässt du die Funktion und kannst das Ergebnis einer Berechnung oder was auch immer in der Funktion zurück geben. Deine Funktion "area" gibt z.B. den Wert der Variable test zurück. Bei std::cin.get() wäre es ein Zeichen des der Benutzer eingegeben hat.
Oft wird durch return auch zurückgegeben ob eine Funktion erfolgreich war oder nicht.


Achja zu deinen Funktionen:

C++:
inline int area(const int a, const int b)
{ return a * b; }



C++:
char c(0);
while (std::cin >> c)
    std::cout << c;

(ehm geht auch per Iterator und copy usw. aber das ist jetzt unwichtig und ein wenig zu fortgeschrittene Thematik).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.01.2008, 11:58 Uhr
RedEagle




C++:
int add(int a, int b)
{
return a+b; //gibt die Summe der Argumente zurück
}

int main()
{
int c;

c = add(1, 2);
// c enthält nun eine 3

add(4, 5);
//die 9 geht verlohren

return 0;
}

--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.01.2008, 11:59 Uhr
wolf360



und das is genau das was ich nicht verstehe..."

was bringt es mir den wert zurückzugeben???

könntest du mir mal ein beispiel zeign, wo es z.B. wichtig bzw nützlich wäre
return 0/return test zurückzugeben??


Bearbeitung:
Okey, c enthält nur 3 aber was bringt es mir nach return 0?? Damit beende ich ja das Programm.

Wenn ich jetzt die funktion ohne return a+b gemacht hätte, würde es wohl nur 0 zurückgeben, oder??


Dieser Post wurde am 03.01.2008 um 12:03 Uhr von wolf360 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.01.2008, 12:04 Uhr
RedEagle



return legt fest, welcher Wert zurückgegeben werden soll


C++:
int area (int i, int i2){
int test;
test = i*i2;
return test;
}

//////////////////////////////////////////

int main()
{
int flache1, f2, f3;
flache = area(2, 3);

//flache enthält die Fäche 2x3 = 6 (m² odas was auch immer)

f2 = area(4, 6);
//f2 = 4 * 6
f3 = area(5, 7);
//f3 = 5 * 7


return 0;
}


Das return 0 in der main-funktion hat eine "besondere Funktion".
Steht irgendwo in den FAQs
--
MFG RedEagle

Dieser Post wurde am 03.01.2008 um 12:07 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.01.2008, 12:07 Uhr
wolf360



aaaaaaaachso okey, danke für die Erklärung!!

gruß wolf360
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.01.2008, 12:11 Uhr
RedEagle




Zitat von wolf360:
[...]

Bearbeitung:
[...]
Wenn ich jetzt die funktion ohne return a+b gemacht hätte, würde es wohl nur 0 zurückgeben, oder??





C++:
int fnc1(int a, int b)
{
int c = a + b;
return 0;
}

int fnc2(int a, int b)
{
int c = a + b;
}


Die Funktion fnc1 leifert immer 0.
Die Funktion fnc2 leifert einen nicht definierten Wert Zurück.
Dass kann a+b sein, kann auch 0 sein, kann aber auch etwas "zufälliges" sein.
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: