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!

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...