mercoledì 3 aprile 2013

Eureka!

La risposta dei programmatori

all'interno della comunità dei programmatori aleggia il dubbio che Pensiero Profondo avesse qualche problema nel gestire le precedenze degli operatori. Come spiegazione, si veda il seguente programma in C:

#include <stdio.h>

#define SEI 1 + 5
#define NOVE 8 + 1

int main()
{
printf( "Il significato della vita: %d\n", SEI * NOVE );
return( 0 );
}


Il programma definisce le macro SEI come "1 + 5" e NOVE come "8 + 1"; quando viene eseguita l'operazione "SEI * NOVE", dato che nel calcolo matematico si usa dare la precedenza alla moltiplicazione sull'addizione, il computer si trova ad eseguire 1 + (5 * 8) + 1. Che risulta 42.

Nessun commento:

Posta un commento