Supponendo che la domanda riguardi gli operatori integrati ++
e --
, nessuna di queste dichiarazioni è strettamente legale.
I primi due sono ben formato, cioè esse semplicemente compilabile perché il risultato di incremento prefisso è Ivalue. Gli ultimi due sono non formattati, poiché il risultato dell'incremento postfisso non è un valore rvalore, motivo per cui non è possibile assegnarlo.
Tuttavia, anche i primi due non sono legali in un senso che producono un comportamento non definito. È illegale modificare lo stesso oggetto più volte senza un punto di sequenza intermedio. (Si noti inoltre che i compilatori possono rifiutarsi di compilare un codice ben formato che produce un comportamento indefinito, il che significa che anche la prima coppia potrebbe rivelarsi non compilabile).
possibile duplicato di http://stackoverflow.com/questions/1860461/why-is-i-i-1-unspecified-behavior –
compiti? Domanda d'esame? –
Non proprio entrambi. Sono solo curioso di sapere. – ckv