Zeiger ( end ergebniss )
-
Hi Ich habe mal ne frage :
Ist dass wahr , wenn ich dies schreibe dann ist das ergebnis ein zeiger :
int *test() { return test; }Stimmt dass
-
Mist habe einen fehler gemacht , entschuldigung :
int *test(int a) { return a; }Ich meinte naturlich so was
-
ne ist nicht wahr
-
int *test(int a) { return a; }ergibt nen super fehler. du definierst dass du einen zeiger auf int zurückgeben wirst und gibst ein int zurück.... nicht gut

-
Wie soll es dann gehen bitte ein besipiel
-
Lightning* schrieb:
Wie soll es dann gehen bitte ein besipiel
z.B.
int* get_address_of(int rhs) { return &rhs; }gibt die Adresse des Arguments zurück.
Gruß Caipi
-
Warte doch mal :
Ergibt denn dass hier auch nicht dass gleiche :int get_address_of(int rhs) { return &rhs; }Ohne den Zeiger kann ich doch auch die adresse übergeben .
Dass ist doch nicht dass Problem mich interesiert was der indirektionsoperator(*) in der funktion bewerkstelligt .
Was passiert dort , wenn * steht alsoint* get_address_of(int rhs) { return &rhs; }Was ist der unterschied zwischen den ersten und dem zweitem .
Lightning
-
beim ersten Beispiel sagst du du willst ein int zurückgeben und gibst einen pointer auf int zurück --> FEHLER
Beim zweiten ist alles ( syntaktisch
) richtig.
Kurt
-
Lightning* schrieb:
Ergibt denn dass hier auch nicht dass gleiche :
int get_address_of(int rhs) { return &rhs; }Das gibt einen Fehler der Art "invalid conversion from int* to int".
Lightning* schrieb:
Was passiert dort , wenn * steht also
int* get_address_of(int rhs) { return &rhs; }Das bedeutet einfach, dass die Funktion einen Pointer auf einen Integer zurückgibt. Mit dem kannst du dann weiterarbeiten:
int foo; int* bar = get_address_of(foo); std::cout<<bar;Ich weiß ehrlich gesagt nicht, was daran so schwer zu verstehen ist ;).
-
Wobei euer get_adress_of die Adresse der lokalen Kopie des Aufrufparameters zurückgibt und nicht etwa die Adresse von foo

-
LordJaxom schrieb:
Wobei euer get_adress_of die Adresse der lokalen Kopie des Aufrufparameters zurückgibt und nicht etwa die Adresse von foo

Jup. Hab da wohl ein & vergessen...

es sollte natürlich so aussehen:
int* get_address_of(int& rhs) { return &rhs; }Gruß Caipi
-
Jetzt hast du aber glück gehabt dass das nicht das C-Forum ist

Kurt
-
da soll noch einer sagen, c++ macht keinen spaß
