Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Eine Operator Frage Bitte

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
30.08.2003, 13:29 Uhr
~Fuat
Gast


Hallo Leute

ich bin ein Anfänger

Was Kann ich mit diesem Operator machen ( ! )

Beispiel was bedeutet diese ausdruck

return (!rec && !SyncDev.IsRunning());//Hier wurde zwei mal der Operator (!)
benutzt was bewirkt es?


Grüße Fuat
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.08.2003, 13:53 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo,
der Operator ! "negativiert" dir deinen Ausdruck, also z.b


C++:
bool a = true;
if(!a)
// ...


in diesem Fall würde dort ausgeschrieben stehen


C++:
if(a == false)



in deinem Fall wäre es ausgeschrieben


C++:
return ((rec==false) && (SyncDev.IsRunning()==false /* not running */));


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
31.08.2003, 11:37 Uhr
0xdeadbeef
Gott
(Operator)


Genauer gesagt steht da

C++:
if(a == 0)


0 wird in C und C++ wie false behandelt. Alles andere wirkt wie true. Dementsprechend können auch ints und longs negiert werden. Der !-Operator macht im wesentlichen folgendes:


Code:
     { 1 wenn a = 0
!a = {
     { 0 sonst


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 31.08.2003 um 11:37 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.08.2003, 11:44 Uhr
0xdeadbeef
Gott
(Operator)


Allerdings ist es in der Regel schlechter Programmierstil, ! auf nicht-boolsche Werte anzuwenden. Ausdrücke wie

C++:
b += !!a;


sind doch deutlich weniger lesbar als

C++:
if(a != 0) ++b;


In C gibt es keinen eigenen Datentyp für bool, deswegen ist es da ein manchmal Interpretationssache, wann ein Wert boolsch ist. Als Faustregel gilt: ! kann man da gut anwenden, wo man es auch mit && und || kann.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
31.08.2003, 13:51 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Bei Pointern benutzt man es ja auch oft:


C++:
char *test = NULL;
test = new char[12];
if(!test) // test == NULL / test == 0 / test == false
{
  cerr << "Konnte der Variablen test keinen Speicher zuweisen" <<endl;
}


--
class God : public ChuckNorris { };

Dieser Post wurde am 31.08.2003 um 13:51 Uhr von FloSoft editiert.
 
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: