[C/C++] Ausdruck erläutern!!

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Megalomaniac, 18. Januar 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 18. Januar 2009
    Ausdruck erläutern!!

    Hallo leutz,

    Hab mal ne frage zu einem Ausdruck der mir ganz und gar nicht logisch erscheint!!!

    "Es sei int a,b; vereinbart. Wann ist der Ausdruck (a=b) wahr?"

    Ergebniss = Wenn b != 0 ist!
    was wird damit gemeint???

    Und das Makro leuchtet mir auch nicht ein!

    Definieren Sie ein Makro das von zwei Parameterwerten das Maximum ermittelt:

    Ergebniss:
    Code:
    #define MAX(x,y) ((x)>=(y)) ? (x):(y)
    Bitte jemand erläutern!!


    Danke Vorab
    Gruß
     

  2. Anzeige
  3. #2 18. Januar 2009
  4. #3 18. Januar 2009
    AW: Ausdruck erläutern!!

    ok, das makro leuchtet mir nun ein aber der erste Ausdruck is immernoch verwirrend!!
     
  5. #4 18. Januar 2009
    AW: Ausdruck erläutern!!

    also
    "Es sei int a,b; vereinbart. Wann ist der Ausdruck (a=b) wahr?"

    sie mal a und b als 2 mengen. vereinbart bedeutet das a ODER b gilt.
    dies gilt aber nur wenn die schnittmenge 0 ist, weil du sonst ein element aus menge a bzw b doppelt zählen würdest.

    dh a geschnitten b muss 0 sein.
     
  6. #5 18. Januar 2009
    AW: Ausdruck erläutern!!

    Hmm, leuchtet mir ehrlich gesagt immernoch nicht ein!
    Vereinbart = Schnittmenge is ok, aber wenn a geschnitten mit b ungleich 0 sein muss, was hilft mir die aussage b ungleich 0 dan b gleich a? Ich bring da keinen Zusammenhang rein sry.. ?
     
  7. #6 18. Januar 2009
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
  8. #7 18. Januar 2009
    AW: Ausdruck erläutern!!

    Ich würde das anders sehen. Vereinbart heißt hier einfach nur definiert/gegeben.
    (a=b) ist demzufolge wahr, wenn a, das auf den Wert von b gesetzt wird
    (Achtung: "=" ist eine Zuweisung, "==" ein Vergleich)
    wahr ist, also wenn b wahr (!=0) ist
     
  9. #8 26. Januar 2009
    AW: Ausdruck erläutern!!

    also mit mengen hat das ganze nichts zu tun, sondern mit operatoren!!!

    wenn du sagst a = b ist das eine zuweisung (kein vergleich) und der ausdruck ist immer wahr solanger b>0 ist. das ist das gleiche wie if(a).
    das hier "z = (x>=y) ? x : y "kommt eigentlich aus java und bedeuten: wenn x größer oder gleich y ist, dann ist rückgabewert x und sonst y.
    wenn du sagst a == b, dann ist das ein vergleichsoperator und der ausdruck ist dann wahr wenn a gleich b ist. rückgabewert ist größer 0.
     
  10. #9 26. Januar 2009
    AW: Ausdruck erläutern!!

    Nicht ganz, der Ausdruck ist auch wahr, wenn b < 0 :)
    Alles was <> (ungleich) 0 ist, ist in C(++) wahr, nur 0 ist falsch.

    Der Ausdruck wertet einfach das Ergebnis der Zuweisung aus, also in diesem Fall den Wert von a:

    Gehen wir mal davon aus:
    Code:
    a = 0; // egal, kann irgendwas sein
    b = -1;
    Dann der Ausdruck:

    Code:
    if (a = b)
    Das ist das gleiche wie:

    Code:
    a = b;
    if (a) // in a steht jetzt -1 (der Wert von b) wegen der Zuweisung und -1 = true, da -1 <> 0
    Daraus folgt: da du a immer den Wert von b zuweist und hinterher auf true (<> 0) oder false (0) prüfst, entscheidet b, ob das Ergebnis true oder false ist.

    Stimmts? :D
     
  11. #10 26. Januar 2009
    AW: Ausdruck erläutern!!

    du hast vollkommen recht, ich habe den negativen bereich vergessen. deswegen mag ich die öffentlichen foren, zwei köpfe sind immer besser ein ein
     
  12. #11 26. Januar 2009
    AW: Ausdruck erläutern!!

    Erledigt!?

    ~closed~

    Mfg,

    Kolazomai
     

  13. Videos zum Thema
Die Seite wird geladen...