Zum Inhalt springen

Funktionen und übergabe von Argumenten, Anfängerproblem


Empfohlene Beiträge

Geschrieben

Hallo,

wieder ein Problem :)

so verstehe ich die Übergabe von Argumenten bei Funktionen:

void Funktion(int X) //wird nichts zurück gegeben, braucht aber X

int Funktion() //wird ein Integer zurück gegeben

nun, habe im Buch 2 Funktionen, die nichts mit einander zutun haben,

mir ist nur aufgefallen dass beide Void sind, und eine davon aber einen Wert zurück gibt.

Habe beide Funktionen so weit wie möglich abgespeckt, damits übersichtlich wird, und zum Schluss in eine zusammen gefasst.


void myFunktion(char szX[], int nX)
{
szX[4] = '1'; //zum "Text" wird "1" angehängt, szX[4]="Text1"
nX++; //hier ist nX=2
}
void main()
{
char szY[8]="Text";
int nY = 1;
myFunktion(szY, nY); //hier ist szY="Text1", aber nY=1.
}
[/PHP]

Nun, warum bekommt die scY Wert übergeben, und nY aber nicht?

Ich habe bestimmt irgend wo einen Denkfehler, nur finde ich diesen nicht :confused:

Danke allen für die Mühe

Geschrieben

Kein Denkfehler, sondern eine Spracheigenschaft von C und C++, die du nicht kennst ;)

Normalerweise werden von den Funktionsargumenten Kopien gemacht (call by value). Änderungen in der aufgerufenen Funktion betreffen nur diese Kopie, und wirken sich nicht auf die Variable aus, die im Aufruf steht.

Arrays sind da allerdings eine Ausnahme. Von einem Array wird immer nur ein Verweis übergeben (call by reference). Änderungen am Array in der aufgerufenen Funktion wirken sich damit auf das Array aus, das für den Aufruf benutzt wurde.

Geschrieben

Aaaaa, wieder was gelernt :)

Ich hab wegen dieser Spracheigenschaft kaum schlalfen können, hat mir keine ruhe gelassen. Der Typ, der das Buch geschriben hat, könnte es auch vermerken, und nicht einfach so stehen lasen

Danke Dir!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...