PDA

Visualizza la versione completa : [C] Dubbio su ciclo while e print


Mutato
13-03-2006, 10:42
Si prenda questo semplice listato:



#include<stdio.sh>
int main()
{
int a;
while(a)
{
printf("%d\n",a++);
}
}


Per quale motivo a e' prima stampata e poi incremetata?

Ottengo lo stesso risulato per



int a;
int b;
[...]
b=a++;
printf("%d\n",b);


ma non per



int a;
[...]
a++;
printf("%d\n",a);


Grazie.

oregon
13-03-2006, 10:49
Scusa, ma ho il dubbio di non aver capito a fondo la domanda ...

In che senso

"Per quale motivo a e' prima stampata e poi incremetata?"

... proprio perche' gli dici di fare cosi'! ...

Ovvero, nella riga

printf("%d\n",a++);

l'operatore di incremento ++ e', in questo caso, di postincremento (ovvero opera dopo il trattamento della variabile, in questo caso, nella printf) ...

Se avessi voluto un preincremento, avresti dovuto scrivere

printf("%d\n",++a);

Mutato
13-03-2006, 10:58
e gia'... una banalita'

Loading