Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
C++ Greenie(?) Mini JLI'ler
Anmeldedatum: 31.12.2003 Beiträge: 28 Wohnort: Esslingen Medaillen: Keine
|
Verfasst am: 10.01.2004, 10:08 Titel: Zeigerfragen! |
|
|
Noch nicht völlig verstanden, bzw zweifle an:
Wenn ich Zeiger auf Funtkionsparamter zeigen lasse werden doch
in der Funktion Kopien von den Argumenten erstellt.
Zeigen die dann auf die Kopie, wenn ja, werden diese ja nach beendigung der Schleife wider gelöscht und die Zeiger könnten doch dann nicht mehr darauf zeigen. Und die Argumente haben wieder ihren Deklarierten Wert.
Wie ist es dann möglich das diese auch nach der Funtkion noch
nach der Funktion mit diesem Wert ausgegeben werden können. |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 10.01.2004, 12:03 Titel: |
|
|
wir haben zwei funktionen:
Code: |
1.: void rechne(int a,int b);
2.: void rechne(int* a,int* b);
|
Bei der 1. werden Kopien erstellt und damit gearbeitet
bei der 2. werden mit den Originalvariablen gerechnet/gearbeitet.
z.B.
Code: |
#include <iostream.h>
void rechne(int a,int b)
{
a += 3;
b -=2;
cout << "rechne(): ";
cout << "a: " << a << " b:" << b << endl;
}
void rechne(int* a,int* b)
{
*a += 3;
*b -=2;
cout << "rechne(): ";
cout << "a: " << *a << " b:" << *b << endl;
}
int main()
{
int a=5;
int b=9;
cout << "main(): ";
cout << "a: " << a << " b:" << b << endl;
rechne(a,b);
cout << "main(): ";
cout << "a: " << a << " b:" << b << endl;
rechne(&a,&b);
cout << "main(): ";
cout << "a: " << a << " b:" << b << endl;
return 0;
} |
_________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
C++ Greenie(?) Mini JLI'ler
Anmeldedatum: 31.12.2003 Beiträge: 28 Wohnort: Esslingen Medaillen: Keine
|
Verfasst am: 10.01.2004, 12:31 Titel: |
|
|
Danke für deine Hilfe. Hab auch schon Hilfe bekommen.
Danke |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.01.2004, 17:16 Titel: |
|
|
Es währe aber noch zu sagen das es noch eone weitere Methode gibt die ebenfalls mit den orignal Zahlen arbeitet und diese verwendet.
Code: |
#include <iostream.h>
void rechne(int &a, int &b)
{
a=100;
b=200;
}
int main()
{
int c=50;
int d=25;
rechne(c,d);
cout << "c: " << c<< " d:" << d << endl;
return 0;
}
|
Ausgabe:
c: 100 d: 200 _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 10.01.2004, 19:05 Titel: |
|
|
sowas nennt man referenz :p |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 10.01.2004, 21:48 Titel: |
|
|
Ja das mit Referenzen wollte ich auch schreiben, aber arbeite kaum mit denen und wollte lieber nichts Falsches sagen... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 11.01.2004, 00:08 Titel: |
|
|
das pasiert mir auch oft: ich will etwas schreiben aber hab nich so viel ahnung davon und las es dann, später erfhr ich dann das ich doch recht gehabt hätte. aber egal |
|
Nach oben |
|
|
|