====== Der Komma-operator ====== Dieser Artikel behandelt einen weiteren Exoten der C und C++ Sprache, den Komma-operator. \\ Er wird dort verwendet, wo man mehrere Anweisungen in einen Ausdruck verpacken will. Das kann zum Beispiel als Teil des [[c:expr:conditional|bedingten Operators]] oder in einer [[c:loops:start|for-Schleife]] verwendet werden. ===== Syntax ===== , , ... ===== Semantik ===== Alle en bis auf die letzte werden nacheinander ausgeführt.\\ Alle anweisungen außer der Letzten werden als "void"- Anweisung ausgeführt, der Rückgabetyp und der Rückgabewert der letzten Anweisung wird als Rückgabetyp und der Rückgabewert des Operators verwendet. ===== Beispiel ===== Am besten ist der Komma-operator mit einigen Beispielen zu erklären: int a = (2, 3, 4, 5); printf ("a ist jetzt %d\n", a); /* a ist jetzt 5 */ Ein etwas praktikableres Beispiel ist die for-Schleife: for(i = 0, j = 10; i < 10; i++, j--) { ... rest of loop ... } ===== Probleme ===== Wenn der Operator dort verwendet wird wo normalerweise eine Komma-getrennte Liste verwendet wird, muss er in Klammern gesetzt werden. Beispiel: f(a, (t=3, t+2), c)