Soluzione
Esercizio 003 - Passaggio dei parametri in Java e ANSI-C
L'esercizio
proponeva di confrontare tra di loro due programmi (uno Java e l'altro
ANSI-C) molto simili tra di loro.
Ho
ricevuto poche risposte (in boldface rosso
gli errori, in bolface
blu le risposte corrette):
Risposta |
Java |
Ansi-C |
1 |
three
two three |
<no
answer> |
2 |
one
two three |
one
two three |
3 |
one
two three |
three
three three |
4 |
three
three three |
one
two three |
5 |
one
two three |
<indefinito> |
Unica
risposta corretta! |
Complimenti
al #5 che ha risposto in maniera corretta!
Java
definisce
l'ordine di valutazione delle espressioni (left to right).
ANSI-C
e C++ non definiscono invece l'ordine di valutazione delle espressioni.
A
titolo di curiosità il programma ANSI-C può stampare le seguenti
righe a seconda dei diversi compilatori su cui ho provato l'esempio:
one two three
three two three
three three three
two two three
Regole
del gioco
I quiz
presentati in questa rubrica trattano esclusivamente del linguaggio Java,
così non sono richieste conoscenze di applets, servlets, Beans,
etc.. Le uniche classi predefinite che possano eventualmente essere utilizzate
sono quindi solo quelle appartenenti al package java.lang (classi come
ad esempio: Thread, Class, ClassLoader, System, Runtime, etc...). Per risolvere
i quiz non serve inoltre editare, compilare o testare nessun tipo di codice.
Si tratta di quiz mentali che devono essere risolti solo con la
testa e non con il computer. Quindi:
-
Non bisogna
compilare ed eseguire nessun pezzo di codice: non sono interessato a sapere
che con certe implementazioni della JVM si ottengono certi risultati mentre
con altre implementazioni altri risultati. Sono invece interessato a quali
siano l'insieme di risultati validi così come specificato dal linguaggio
Java: cioè quali sono i risultati che un buon programmatore Java
si può aspettare da una qualsiasi JVM che soddisfi le specifiche
di Java?
-
Non occorre
che inviate una soluzione del quiz a me o alla rivista. La soluzione sarà
fornita nel prossimo numero. Una volta nota la soluzione (quindi solo dal
prossimo mese in poi) potete allora eventualmente contestarla e/o commentarla
inviandomi
una email. Io sarò ben lieto di pubblicare e discutere tutti
i pareri ricevuti.