Variable und Funktion!



  • Ok. Kann aber eine Funktion eine Variable sein?
    Danke fur die Antwort! 🙂



  • Auch nicht. Eine Funktion kann keinen Wert darstellen.



  • Jein. Man kann jedoch die Adresse einer Funktion ermitteln und in einer Variable speichern. Functionpointer sind das dann. Mit dieser Variable kann dann jemand anderes die "unbekannte" Funktion aufrufen, dazu übergibt man ihm den Functionpointer (was ja eine Variable ist).



  • Artchi schrieb:

    Jein. Man kann jedoch die Adresse einer Funktion ermitteln und in einer Variable speichern. Functionpointer sind das dann. Mit dieser Variable kann dann jemand anderes die "unbekannte" Funktion aufrufen, dazu übergibt man ihm den Functionpointer (was ja eine Variable ist).

    Das macht eine Funktion aber noch lange nicht zu einer Variable. Die Variable in diesem Beispiel ist der Pointer!

    MfG SideWinder



  • Einem, der Variabeln mit Funktionen gleichsetzt, würde ich von Funktionszeigern lieber noch nichts sagen. 😉



  • Ich wurde mal behaupten das da ein Haken dran ist. Sonst hatte er ja nicht gefragt. I wurde behaupten das eins von beiden geht. Weiss nur nicht welche Option.
    Gruss
    Jakub 🙂



  • Nichts von beiden geht, der, der das gesagt hat, hat sich geirrt.
    Vielleicht dachte er das weil Folgendes funktioniert:

    #include <iostream>
    
    int bla()
    {
    return 10;
    }
    
    int main()
    {
    std::cout << bla();
    bla() = 10;
    return 0;
    }
    

    Damit manipuliert man aber lediglich den Rückgabewert und nicht irgendwie die Funktion selber, außerdem muss nicht jede Funktion einen Rückgabewert haben.
    Funktionen und Variablen sind gänzlich verschiedene Teile, schlag dir den Gedanken gleich wieder aus dem Kopf.

    MfG Eisflamme



  • SideWinder schrieb:

    Das macht eine Funktion aber noch lange nicht zu einer Variable. Die Variable in diesem Beispiel ist der Pointer!

    Ja, habe doch nichts anderes geschrieben. Nur bin ich mir ziemlich sicher, das der Fragesteller eben was von diesen Funktionpointern "gehört" hat. Das eine Funktion eine Variable ist, habe ich nicht geschrieben.



  • Meinem Verstaendnis nach sind Variablen vor allem Behaelter, die einen Wert enthalten. Und Variablen koennen nicht im Speicher enthalten sein, sondern sind ein Programmierkonzept, d.h. Variablen stehen fuer den Speicherort des beinhalteten Wertes. Somit ist z.B. der RAM-Speicher kein Variablenarray, sondern ein Wertearray.
    Funktionen koennte man wohl als Werte betrachten. Damit koennen Variablen Funktionen enthalten (oder wie in C/C++ die Addresse der Funktion), aber das gleiche ist es nicht.



  • Gunnar schrieb:

    Meinem Verstaendnis nach sind Variablen vor allem Behaelter, die einen Wert enthalten. Und Variablen koennen nicht im Speicher enthalten sein, sondern sind ein Programmierkonzept, d.h. Variablen stehen fuer den Speicherort des beinhalteten Wertes. Somit ist z.B. der RAM-Speicher kein Variablenarray, sondern ein Wertearray.
    Funktionen koennte man wohl als Werte betrachten. Damit koennen Variablen Funktionen enthalten (oder wie in C/C++ die Addresse der Funktion), aber das gleiche ist es nicht.

    Was wiederrum heißt, dass eine Variable keine Funktion ist und umgekehrt - wie oft wollt ihr noch aneinander vorbeireden. Jetzt verwirrt ihn doch nicht so.

    Er soll beim Referat auf keinen Fall erzählen, dass Variablen auch Funktionen sein können oder umgekehrt.

    MfG SideWinder



  • Ok, aber ich fand Jakubs Frage hat impliziert das "eine Variable eine Zahl sein kann". Das ist natuerlich auch nicht der Fall.



  • Danke Jungs fur die zahlreichen Antworten! 🙂
    Habe also verstanden das beides nicht stimmt.
    Konnte mir jetzt noch jemand kurz zur beiden ein kleines Beispiel geben das ich nutzen konnte um die ganze Sache besser ilustrieren zu konnen?
    Ihr seit echt lieb!
    Gruss an alle! 😃


Anmelden zum Antworten