WICHTIG! Wie kann man diese Programme beschreiben? :(

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • WICHTIG! Wie kann man diese Programme beschreiben? :(

    Hallo liebe Codergemeinde,

    vielleicht könnt ihr mir helfen.

    Ich muss zu Morgen diese beiden Programme erläutern können (Schreiben eine Arbeit), und habe darüber nicht wirklich Ahnung, was auch am Lehrer liegt.

    Was ich weiß, was "Call by Value, Call bei Referenz und Call bei Pointer" bedeutet." Doch das drumherum kapiere ich leider nicht. :(

    das Programm

    Quellcode

    1. //Parameteruebergabe
    2. //Praeprozessordirektive
    3. #include<iostream.h>
    4. //Deklaration
    5. void tauscheV(int, int); //Call by Value
    6. void tauscheR(int &, int &); //Call by reference
    7. void tauscheP(int *, int *); //Call by pointer
    8. //Hauptprogramm
    9. void main()
    10. {
    11. int nA=5, nB=7;
    12. cout<<"Variationen von \"tausche\""<<endl;
    13. cout<<'a'<<'\t'<<'b'<<endl;
    14. cout<<nA<<'\t'<<nB<<endl;
    15. cout<<"\n\ntauscheV\n";
    16. tauscheV(nA,nB);
    17. cout<<nA<<'\t'<<nB<<endl;
    18. cout<<"\n\ntauscheR\n";
    19. tauscheR(nA,nB);
    20. cout<<nA<<'\t'<<nB<<endl;
    21. cout<<"\n\ntauscheP\n";
    22. tauscheP(&nA,&nB);
    23. cout<<nA<<'\t'<<nB<<endl;
    24. }
    25. //Implementation
    26. void tauscheV(int nX,int nY)
    27. {
    28. int nH=nX;
    29. nX=nY;
    30. nY=nH;
    31. }
    32. void tauscheR(int & nX,int & nY)
    33. {
    34. int nH=nX;
    35. nX=nY;
    36. nY=nH;
    37. }
    38. void tauscheP(int * nX,int * nY)
    39. {
    40. int nH= * nX;
    41. * nX= * nY;
    42. * nY=nH;
    43. }
    Alles anzeigen


    Und dieses Programm

    Quellcode

    1. // Referenzenzeiger
    2. struct tPunkt
    3. {
    4. int nXpos;
    5. int nYpos;
    6. char cFarbe;
    7. bool bSichtbar;
    8. };
    9. void main()
    10. {
    11. int nA;
    12. nA=5;
    13. // Referenz
    14. int & rnB = nA; // rnB Referenz auf int, rnB alias für nA
    15. rnB = 7;
    16. rnB++;
    17. nA++;
    18. // Zeiger
    19. int * pnC; // pnC ist ein Zeiger auf int
    20. pnC=& nA; // pnC erhält die Adresse von nA
    21. *pnC=10; // der Inhalt des Speicherplatzes auf den pnC zeigt, wird auf 10 gesetzt
    22. pnC++; // Zeiger wird um vier erhöht, da der Datentyp int 4 Byte hat
    23. /////////////////////////////////////////////////////////
    24. tPunkt stP;
    25. stP.nXpos=3;
    26. stP.nYpos=5;
    27. stP.cFarbe='A';
    28. stP.bSichtbar=true;
    29. // Referenz
    30. tPunkt & rstP1=stP;
    31. rstP1.nXpos=33;
    32. // Zeiger
    33. tPunkt *pstP2;
    34. pstP2=&stP;
    35. pstP2->nXpos=333;
    36. pstP2++;
    37. }
    Alles anzeigen