int*& ?
-
Es soll pseudocode sein.
-
Fikomb schrieb:
Es soll pseudocode sein.
pseudo code von was? in pseudo code kann man überingens alles schreiben, wie man will, weil es keine Syntaxregel gibt. Wenn es pseude code ist, dann muss du erstmal erklären, was *, &, *&, sind.
-
nehmen wir an, * sei ein echter zeiger und & ein imaginärer zeiger. was können wir jetzt damit basteln?
**, zeiger auf zeiger: geht
&, zeiger auf imaginären zeiger: geht nicht
&, imaginärer zeiger auf echten zeiger: geht
&&, imaginärer zeiger auf imaginären zeiger: geht nicht.
noch irgendwelche fragen? *fg*

-
Es geht doch bei & um eine Referenz?
Also will man den übergebenen Pointer verändern. Der Pointer zeigt zuerst auf den Anfang des Arrays und nach Ausführung vielleicht auf den ersten \0 Eintrag im Array. Es wird also eine Referenz auf einen Zeiger übergeben. Der Vorteil ist zB das Du die Funktion nicht explizit mit 0 aufrufen kannst. Also nicht foo(0).
Also durchaus Sinnvoll die Formulierung.
-
... schrieb:
Es geht doch bei & um eine Referenz?.
Was ist denn das?

-
Fikomb schrieb:
Kann mir jemand genau sagen was denn der parameter in foo genau sit? Eine Referenz eines Zeigers?
Ja, eine Referenz auf einen Zeiger auf int. Mehr gibt es dazu eigentlich nicht zu sagen.
also ich lege doch eine Kopie eines pointers auf arr in foo auf den stack.
Keine Ahnung, was du in foo machst, da steht nur ein Kommentar. In main übergibst du eine Referenz auf arr an foo. Wenn foo jetzt an par etwas zuweist, weist es gleichzeitig an arr etwas zu, wie das halt so ist bei Referenzen.
Und was genau ist dann par? Zeigt par auf die Adresse der speicherzelle wo der pointer von arr steht?
Ja, wenn man denn bei Referenz von "zeigt auf" sprechen möchte.
Und warum kann man das auch so machen:
void foo(int** par) { //mache was mit arr } int main() { int* arr = new arr[4]; foo(&arr); // mache was mit arr }Weil man Anwendungen von Referenzen oft auch mit Zeigern formulieren kann. Dann hast du halt ein paar mehr & und * im Code.
-
... schrieb:
Der Vorteil ist zB das Du die Funktion nicht explizit mit 0 aufrufen kannst. Also nicht foo(0).
Also durchaus Sinnvoll die Formulierung.vielleicht nicht direkt so im code, aber hinter dem argument kann sich trotzdem schlimmes verbergen (auch ein null-pointer).

-
wie wäre es, wenn der OP sich die Grundlagen von C++ nochmal durchliest, anstatt hier Fragen zu stellen. Es ist so, als würde ich im Krankenhaus den Arzt fragen, warum mein Auto stehen geblieben ist.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
@supertux: Lass es einfach mit Deinen Antworten. Spar Dir die Zeit und bilde Dich selbst in dieser Zeit fort - als Lehrer bist du nicht geboren.
@alle anderen: Danke
-
Fikomp schrieb:
@supertux: Lass es einfach mit Deinen Antworten. Spar Dir die Zeit und bilde Dich selbst in dieser Zeit fort - als Lehrer bist du nicht geboren.
Er hat aber Recht. C ist nicht C++ - Dein Ursprungspost war im AnsiC-Forum. Und PseudoCode verwenden (oder so tun) um ein Sprachmerkmal oder genaues Verhalten erklärt zu bekommen - mit einer Syntax die der von C++ entspricht und ohne Pseudocode zu erwähnen - ist auch irgendwie ... ** schlecht.
Aber egal, hauptsache es klappt jetzt (und du verstehst auch warum!).
-
supertux schrieb:
wie wäre es, wenn der OP sich die Grundlagen von C++ nochmal durchliest, anstatt hier Fragen zu stellen. Es ist so, als würde ich im Krankenhaus den Arzt fragen, warum mein Auto stehen geblieben ist.
du hast ja wohl keine gute meinung vön ärzten *fg*
Fikomp schrieb:
@supertux: Lass es einfach mit Deinen Antworten. Spar Dir die Zeit und bilde Dich selbst in dieser Zeit fort - als Lehrer bist du nicht geboren.
naja, wenn supertux will, kann er schon gut erklären. man sollte es ihm nachsehen, dass es ihn nervt, wenn irgendwelche c++-komiker mit seltsamen wehwehchen in unserem schönen C-forum auftauchen, die unter C überhaupt nicht existieren.
