3. Espressioni

3.1 Perche` il codice "a[i] = i++;" non funziona?

3.2 Col mio compilatore, il codice "int i = 7; printf("%d\n", i++ * i++);" stampa 49. Indipendentemente dall'ordine di valutazione, non dovrebbe stampare 56?

3.3 Come puo` mai il codice "int i = 3; i = i++;" dare 7 ?

3.4 Precedenza e parentesi non dettano l'ordine di valutazione?

3.5 Ma cosa dire degli operatori && e || ?

3.8 Cosa e' un punto sequenza?

3.9 Dunque dato a[i] = i++; non si sa` quale cella di a[] venga sovrascritta, ma i viene certamente incrementatao di uno.

3.12 Se non uso il valore dell'espressione, dovrei usare i++ o ++i per incrementare una variabile?

3.14 Perche' il codice "int a = 1000, b = 1000; long int c = a * b;" non funziona?

3.16 Posso usare ?: sul lato sinistro di una espressione di assegnamento?


Cima