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
Alles anzeigen
Und dieses Programm
Alles anzeigen
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
- //Parameteruebergabe
- //Praeprozessordirektive
- #include<iostream.h>
- //Deklaration
- void tauscheV(int, int); //Call by Value
- void tauscheR(int &, int &); //Call by reference
- void tauscheP(int *, int *); //Call by pointer
- //Hauptprogramm
- void main()
- {
- int nA=5, nB=7;
- cout<<"Variationen von \"tausche\""<<endl;
- cout<<'a'<<'\t'<<'b'<<endl;
- cout<<nA<<'\t'<<nB<<endl;
- cout<<"\n\ntauscheV\n";
- tauscheV(nA,nB);
- cout<<nA<<'\t'<<nB<<endl;
- cout<<"\n\ntauscheR\n";
- tauscheR(nA,nB);
- cout<<nA<<'\t'<<nB<<endl;
- cout<<"\n\ntauscheP\n";
- tauscheP(&nA,&nB);
- cout<<nA<<'\t'<<nB<<endl;
- }
- //Implementation
- void tauscheV(int nX,int nY)
- {
- int nH=nX;
- nX=nY;
- nY=nH;
- }
- void tauscheR(int & nX,int & nY)
- {
- int nH=nX;
- nX=nY;
- nY=nH;
- }
- void tauscheP(int * nX,int * nY)
- {
- int nH= * nX;
- * nX= * nY;
- * nY=nH;
- }
Und dieses Programm
Quellcode
- // Referenzenzeiger
- struct tPunkt
- {
- int nXpos;
- int nYpos;
- char cFarbe;
- bool bSichtbar;
- };
- void main()
- {
- int nA;
- nA=5;
- // Referenz
- int & rnB = nA; // rnB Referenz auf int, rnB alias für nA
- rnB = 7;
- rnB++;
- nA++;
- // Zeiger
- int * pnC; // pnC ist ein Zeiger auf int
- pnC=& nA; // pnC erhält die Adresse von nA
- *pnC=10; // der Inhalt des Speicherplatzes auf den pnC zeigt, wird auf 10 gesetzt
- pnC++; // Zeiger wird um vier erhöht, da der Datentyp int 4 Byte hat
- /////////////////////////////////////////////////////////
- tPunkt stP;
- stP.nXpos=3;
- stP.nYpos=5;
- stP.cFarbe='A';
- stP.bSichtbar=true;
- // Referenz
- tPunkt & rstP1=stP;
- rstP1.nXpos=33;
- // Zeiger
- tPunkt *pstP2;
- pstP2=&stP;
- pstP2->nXpos=333;
- pstP2++;
- }