Parameter-Übergabe bei einer Funktion
-
Warum ist die Ausgabe "Wahr"????????
#include <iostream.h> int test(bool aa) { aa=false; return aa; } int main() { bool bb; bb=false; test(bb); if (bb=true) cout << "WAHR"; return 0; }
-
if (bb=true)
das setzt bb auf true.
Ich denke Du meinst:
if (bb==true)
-
Mist... Stimmt ja...
-
nein du meinst
if (((bb == true) == true) == true)
... oder vielleicht doch einfach nur
if (bb)
?
-
Klappt nun....
-
Diese Anweisung macht ganz sicher nicht das, was du möchtest:
return m[8][8],i;
Welche Auswirkungen hat überhaupt das Komma an dieser Stelle? Der Compiler frisst es jedenfalls...
Aber da du den Rückgabewert deiner Funktion überhaupt nicht überprüfst, ist es auch ziemlich egal was hinter deinem return steht.
Wahrscheinlich willst du die Übergabeparameter deiner Funktion verändern. Dafür müsstest du aber Referenzen übergeben:int auswertung(int &m[8][8], int &i)
-
Also der Compiler meldet eine Warnung weil ich e nicht initialisiert habe. Aber das macht ja auch ncihts. Jedenfalls wird über
return m[8][8],i;
doch der Inhalt der Variable zurückgegeben an die Variablen matrix[8][8] und "e". Matrix spielt ja garkeine Rolle... Aber "e" nimmt den Wert von "i" nicht an. Und anschließenf vergleiche ich "e" ja mit 0 oder 1 also false oder true...
Aber egal ob ich im Programm dann eine Zeichenkette einge oder das Dollar-Zeichen, ich werde nach return immer wieder zu einer neuen Eingabe aufgefordert.
-
Harleen schrieb:
return m[8][8],i;
Welche Auswirkungen hat überhaupt das Komma an dieser Stelle? Der Compiler frisst es jedenfalls...
Das Komma an dieser Stelle ist der Komma-Operator. Er wird von links nach rechts
ausgewährtet und hat als Ergebnis den Wert des Ausdruckes ganz rechts. In diesem Fall ist das i.