Welchen Vorrang hat der Kommaoperator innerhalb des bedingten Operators in C ++?

Was passiert hier?

#include <iostream>
using namespace std;

int main(){

    int x=0,y=0;
    true? ++x, ++y : --x, --y; 
    cout << "x: " << x << endl;
    cout << "y: " << y << endl; //why does y=0 here?

    x=0,y=0;
    false ? ++x, ++y : --x, --y; 
    cout << "x: " << x << endl;
    cout << "y: " << y << endl;
}

x: 1
y: 0

x: -1
y: -1

Der zweite Fall scheint in Ordnung zu sein. Ich würde erwarten, dass sowohl x als auch y im ersten Fall auf 1 inkrementieren, aber nur die linken Operandeninkremente.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage