int x = 5,y = 10;
bool boolean = 0;
int k = (boolean ? ++x, ++y : --x, --y);
cout<<k;
Quando booleana è 0, emette 9, tuttavia quando si tratta di 1 emette 10.I sa questo sta accadendo a causa di precedenza, ma non può esattamente a capire come sta accadendo, per favore aiutatemi a capire questo.Come viene eseguita questa espressione condizionale ternaria?
NOTA: So che posso ottenere l'output previsto se utilizzo la parentesi, o meglio scrivere un codice pulito, sto solo usando questo per capire come il compilatore valuterà espressioni come queste in base alla precedenza.
è meglio usare 'true' e' false' con booleano – Garf365
Letture su _comma operator_ e prefisso decremento di incremento. –
E quale risultato ti aspetteresti? –