Durante la mia terza prova di maturità, il professore esterno venuto nella mia scuola, ci ha dato questo quesito:

Cosa compare a video dopo l'esecuzione di questo programma:

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

int a=1,x,z;

cout << (z=0 && x!=4 && a++) << endl;
cout << (a<2 && x!=(4 && z >-1 )) << endl;
getchar();

}


Dopo averlo tirato in mezzo per tre ore, mi ha confermato che compariva:

01

In realtà compare:

0
1

Dopo vari tentativi non sono ancora riuscito a capire cosa faccia comparire "1".
Confido nel vostro sapere per una risposta.

Grazie