Variable und Funktion!



  • Hallo! 🙂
    Ich habe ein kleines Problem. Ich muss ein kleines Referat machen und darum wollte ich Euch fragen ob eine Variable auch eine Funktion ist und ob eine Funktion eine Variable ist.
    Danke Euch im Vorraus. 🙂
    Jakub



  • Nein die beiden haben nichts miteinander zu tun.

    Variable: Ein Speicherbereich in dem das Programm Daten zwischenspeichern kann.

    Funktion: Code neben dem Hauptprogramm, aus dem Hauptprogramm kann dann bei Bedarf zu dieser Funktion gesprungen werden. Dann wird der Code der Funktion ausgeführt. Ist diese beendet springt sie wieder zurück ins Hauptprogramm.

    MfG SideWinder



  • Danke fur die Antwort. Das ist mir ja klar wie eine Funktion ausgefuhrt und verarbeitet wird. Ich habe aber gehort das eine Variable auch eine Funktion ist. Nun weiss ich nicht weiter... 🙂



  • Nein, das ist definitiv falsch. Funktionen können z.B. aufgerufen werden, Variablen nicht.



  • 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