Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Variable

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.01.2005, 17:11 Uhr
~powert
Gast


Hi,

Was passiert mit der 5 im Folgenden aufruf?


C++:
int c;
c=3,5;



Mein Compiler meldet keinen Fehler c nimmt einfach den Wert 3 an.


Bearbeitung von Pablo:

Bitte, keine doppelposts.


Dieser Post wurde am 19.01.2005 um 17:26 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.01.2005, 17:19 Uhr
Tommix



Hallo,
der Komma-Operator wertet die Ausdrücke von rechts nach links aus und gibt den letzten (also linken) zurück. Das ist schon korrekt so.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.01.2005, 17:36 Uhr
~powert
Gast


Hallo,
muss der Komma-Operator nicht immer in Klammern stehen?
z.B:

int c;
c=(3,5);

dann nimmt c den wert 5 an.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.01.2005, 18:57 Uhr
Hans
Library Walker
(Operator)


Hi,

so wie es da steht, wird sie wohl einfach ignoriert.
Wenn Du jedoch den Zahlenwert drei-einhalb in der Variablen speichern willst, hast du den falschen Datentyp. Der Typ int kann nämlich nur Ganze Zahlen aufnehmen. Für Gebrochene Zahlen wie drei-einhalb oder zwei-komma-eins musst Du float oder double nehmen. Und als Trennzeichen kein Komma sondern einen Punkt. Also so:

float f;
f=2.1; // 2,1 wäre falsch

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.01.2005, 07:26 Uhr
Tommix



@powert,
Du hast recht, was ich geschrieben habe stimmt nicht.
a, b hat als Wert den Wert des Ausdrucks b, der nach Auswertung des Ausdrucks a ermittelt wird. Aber: Der Kommaoperator hat den niedrigsten Vorrang überhaupt, daher erfolgt ohne Klammern erst die Zuweisung. Die 5 steht dann sozusagen nur so da. In C ist ja auch sowas legal:

C++:
int a;
a = 1;
2;
3;
4;


Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: