Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

20.10.2005, 08:36

Danke, dass ihr mich bezüglich des "static"s verbessert habt.
Ja, und bei #define hätte ich noch dazu schreiben sollen, dass es veraltet ist, sorry nix da... *weißefahne*. Also babelfish, nix da und Spik)evil( haben vollkommen Recht. Wenigstens weißt du jetzt auch bescheid (hoffentlich).

Na ja, und das mit dem "unsigned" ist doch eigentlich schon positiv, das Bit fällt zwar weg, aber die Zahl verhält sich zumindestens mal so wie eine positive Zahl. Ich hätte mich doch besser ausdrücken sollen...

THX, F0GX

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

12

20.10.2005, 11:43

glaube babels frage war vllt eher so gemeint:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
int x = 10;

for (int i = 0; i < 10; i++;)
{
   x += i;
}

cout << x;


srpich er wollte wissen ob x wieder "zurückgeädert" wird oder den wert behält, welchen es nach der schleife hat.
ich weiß zwar nicht wie du darauf kommst, dass es wieder zurückgeändert werde sollte und welchen sinn das haben sollte, aber x behält den wert und alles was du in der schleife damit machst bleibt auch danach so...

Sicaine

unregistriert

13

20.10.2005, 11:47

Öhm die Variable wird doch ständig neu deklariert und initialisiert wie soll sie sich den da bitte hochzählen? Ausserdem meinte er wohl die lokale Sichtweisen der Variable.

babelfish

Alter Hase

  • »babelfish« ist der Autor dieses Themas

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

14

20.10.2005, 17:21

ich meine keine normale Schleife sondern eine "while" schleife

Meine überlegung:

Zitat

Wenn man einen Wert in einer "while" Schleife ändert, dann sollte er ja nur "während" dieser Schleife geändert bleiben oder nicht?


deshalb wollte ich fragen ob das so ist

Sicaine

unregistriert

15

20.10.2005, 17:23

Er bleibt in der Whileschleife immer in der gleichen Sicht. Also existiert i auch die ganze Zeit über und so kannst du i auch hochzählen in der While.

babelfish

Alter Hase

  • »babelfish« ist der Autor dieses Themas

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

16

20.10.2005, 17:29

na gut,
findeich zwar nicht so Logisch, kann man aber auch nichts dafür.

danke für die schnelle Antwort :wirbel: :wirbel:

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

17

20.10.2005, 19:48

pass auf, es gibt in C ein Block System, wie auch in den meisten Sprachen. Innerhalb eines Blockes exestiert eine Variable und kann in allen Unterblöcken, die Mengen aus dem Oberblock sind, verändert werden.

Beispiel:

lala.c

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
    int a;

    {
      a=4;
      ++a++;
     }
     {
        { a=7; a=2; --a++; }
        { a=6; }
        a=2;
      }
      {
        a=1;
        while(true)
        {
          a++;
            if(a==15)  break;
        }
      }
}

Alle Operationen in diesem Beispiel sind korrekt, ausser ich hab mich verschrieben ^^

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
{
  int a, b, c;
  {
    int d;
    d=4/3;
    { 
      int e = d;
      d=2;
     }
     e=3; // falsch

   }
}


Also Varibalen können nur innerhalb von Blöcken exestieren ( { } )
Man kann bei C Blöcke setzen wie man will. Funktionen und Schleifen definieren Anfänge neuer Blöcke.
Wenn du ausserhalb eines Blockes kommst, wo die Variable definiert ist, wird ihr Wert oder besser Adresse freigegeben und kann üüberspeichert werden. Unterblöcke können aber die Variablen von Blöcken aus denen sie Untermengen sind üüberschreiben, also verändert sich der Wert nach einer Schleife.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
{
  int a = 3;
  while(true)
   {
     if(a++ > 30)
       break;
    }

    // a  ist hier == 31, da die Schleife bis 31 wartet (>), a Element der

    // natürllichen Zahlen ist  und inkrementiert (++) wird.

}

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

18

20.10.2005, 23:56

Zitat von »"babelfish"«

ich meine keine normale Schleife sondern eine "while" schleife


wo soll der unterschied sein?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

19

21.10.2005, 09:55

... jede schleife hat einen Rumpf, auch wenn du keinen Block schreibst. Wenn man nur eine anweisung hat, braucht man das nicht

C-/C++-Quelltext

1
2
while(Bedingung)
  i++;


C-/C++-Quelltext

1
2
3
4
while(Bedingung)
{
  i++;
}


ist das gleiche

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

20

21.10.2005, 13:31

eben. deswegen frag ich mich wo babelfish den unterschied sieht...

Werbeanzeige