Variablen Werte falsch



  • Hallo, ich komme gerade aus dem Bereich PHP, JavaScript etc. Ich wollte mich mal langsam mit C auseinander setzen und habe gemerkt das folgendes nicht möglich ist:

    int x,y = 10;
    

    Denn wenn ich diese Verrechne wird für x = 8 und y = 10 gerechnet.

    Woran liegt es das mein x als 8 bezeichnet wird.



  • Deine 1 Zeile Code kann man auch schreiben als:

    int x;
    int y = 10;
    

    ... und dann wird es auch schon klarer was passiert! Du weisst die 10 nur der Variablen x zu.



  • Achso, warum wird dann x 8 zugewiesen?

    Wenn da müsste man es so machen oder?

    int x,y;
    int x = 10;
    int y = 10;
    


  • rangman13579 schrieb:

    Achso, warum wird dann x 8 zugewiesen?

    Mann Mann.
    x wird nicht 8 zugewiesen, 8 steht zufällig an der Speicherstelle, die für x reserviert wurde.



  • Hallo!

    Es geht dafür aber

    x = y = 10;
    

    Hast du zum Beispiel

    int a, b, c, d;
    
    a = b = c = d = 10;
    

    wird allen Variablen der Wert 10 zugewiesen.
    So lange alle Variablen vom selben Typ sind, geht das.



  • rustyoldguy schrieb:

    So lange alle Variablen vom selben Typ sind, geht das.

    int main( void )
    {
    	int a, b, c;
    	double d, e, f;
    	a = b = c = d = e = f = 10;
    }
    

    Und nu?



  • rangman13579 schrieb:

    Achso, warum wird dann x 8 zugewiesen?

    Wenn da müsste man es so machen oder?

    int x,y;
    int x = 10;
    int y = 10;
    

    Nein. Denn alle Zeilen sind Definitionen.
    Du definierst x und y jeweils nochmal und da meckert der Compiler.

    rangman13579 schrieb:

    Hallo, ich komme gerade aus dem Bereich PHP, JavaScript etc. Ich wollte mich mal langsam mit C auseinander setzen und habe gemerkt das folgendes nicht möglich ist:

    Schließe nie aus dem Verhalten einer Programmiersprache auf das Verhalten einer anderen. Schon gar nicht, wenn C im Spiel ist (und auch nicht bei Scriptsprachen).

    Nimm ein gutes Buch über C und arbeite es durch. Nur so lernst du vernünftig.



  • Vielen Dank an alle die mir geholfen haben.
    Ich habe mich Stundenlang drangesetzt und selbst nach der effektivsten Methode gesucht, da das auch das Programmieren ausmacht.

    Vielen dank nochmal.



  • rangman13579 schrieb:

    Ich habe mich Stundenlang drangesetzt und selbst nach der effektivsten Methode gesucht

    In solch einfachen Fällen. kannst du das dem Compiler überlassen.
    Schreib es so, dass Andere (und auch du nach einem Monat) den Code leicht lesen und verstehen können.


Log in to reply