Unterschied Array mit einem Element / Variable



  • Hallo zusammen,
    gibt es hier zwischen einen Unterschied?

    double x[1] = {5};
    double y    = 5;
    

    Vielen Dank
    lg, freakC++



  • freakC++ schrieb:

    Hallo zusammen,
    gibt es hier zwischen einen Unterschied?

    double x[1] = {5};
    double y    = 5;
    

    Vielen Dank
    lg, freakC++

    Semantisch ist beides das gleiche. Syntaktisch hast Du aber einen gewaltigen Unterschied.

    mfg Martin



  • In wiefern meinst du Unterschied?

    Das sind grundsätzlich ganz verschiedene Sachen. x ist ein Array mit nur einem Element vom Typ double und y ist ein double .

    Unterschiede gibt es sehr viele. Zu nennen sind das Verhalten bei Funktionsüberladungen, Zugriff oder z.b auch das Verhalten, wenn du die Variablen versuchst zu inkrementieren. Ich sehe da nicht viele parallelen, ausser, dass sie beide gleich viel Speicher (mit dem gleichen Typen) brauchen. Aber das hier tut das auch:

    struct foo{ double x; };
    

    Und das ist auch nicht wirklich gleich, wie die gezeigten Beispiele..



  • freakC++ schrieb:

    Hallo zusammen,
    gibt es hier zwischen einen Unterschied?

    double x[1] = {5};
    double y    = 5;
    

    Der Typ und der Zugriff ist offensichtlich unterschiedlich. Aber ja, Du kannst im Prinzip alle lokalen "normalen" Variablen durch 1-elementige Arrays ersetzten und dementsprechend überall ein [0] dranhängen. Das sollte mehr oder weniger zum gleichen Maschinencode führen.

    kk



  • Hallo,
    ja, ich meinte eher, ob es auf Maschinenebene einen Unterschied gibt. Dass ersteres ein Array ist, war mir klar :D. Drakons Beispiel mit dem struct ist aber auch ein gutes Beispiel.

    Herzlichen Dank
    lg, freakC++



  • freakC++ schrieb:

    Hallo,
    ja, ich meinte eher, ob es auf Maschinenebene einen Unterschied gibt.

    In optimiertem Zustand kaum.



  • Ok, super!

    Bis dann
    lg, freakC++


Anmelden zum Antworten