wie ist x&&y||z ausgewertet?

Gegeben

int x=1,y=2,z;

Könnten Sie erklären, warum das Ergebnis:

x && y || z 

ist 1?

x && y = 1
x && y || z = 1
  • Was zur Hölle ist das Kopfgeld für? Die Frage geht wirklich bleiben unbefriedigend beantwortet?
  • Wenn Sie unsicher sind, ob der code wirklich das macht, was Sie beabsichtigt, es zu tun, verwenden Sie Klammern. Sie machen den code lesbarer zu gestalten. Es ist nicht "cool" zu Stopfen alles, was Sie können in einer einzigen Anweisung, kann nur analysiert werden, wenn Sie wissen, je Ecke der Sprache.
  • Re: "Was zur Hölle ist das Kopfgeld für?" -- Oft Menschen bieten ein Kopfgeld auf zufriedenstellend beantwortet Fragen als ein Mittel, um eine zusätzliche Belohnung für die Beantworter. Das ist explizit erlaubt, wenn die person, die die bounty hat immer noch eine Wartezeit, bevor Sie vergeben.
  • das kann sein, aber ich dachte, das war nicht die Art von Frage... 🙂
  • Es stellt sich auch heraus, dass die person, die die bounty ist ein Beantworter :))
  • Ausgehend von den upvotes könnte es dies sein => meta.stackexchange.com/questions/105275/... obwohl, die Antwort ist nicht wirklich alles gut. Sieht fischig zu mir.
  • Bietet eine bounty ist ein wirklich lahmer Weg, um zu verhindern, dass deine Frage geschlossen wird, um ein Duplikat/off-topic/etc... Dies ist der wahrscheinlichste Grund, denke ich...
  • Ich glaube nicht, denn die OP ist nicht die ein Angebot der bounty
  • Bitte stoppen Sie bietet Kopfgelder auf Fragen, die ohne ersichtlichen Grund.
  • In C (ich weiß nicht, ob es das gleiche in C++), das Ergebnis der logischen Operationen (!, &&, ||) ist ein int - Typ mit dem Wert 0 oder 1

InformationsquelleAutor Dan Dinu | 2011-09-01
Schreibe einen Kommentar