PDA

Visualizza la versione completa : [C] Sintassi for() e incremento puntatore


{-_-}
04-12-2007, 21:41
scrivere

for (i=n ; i<a; i++)

oppure

for (i=n ; i<a; i++)

la stessa cosa?

shodan
04-12-2007, 21:46
Per come l'hai scritto: si.

forse intendevi:



for(i=n ; i < a ; ++i)


rimane comunque la stessa cosa in questo contesto.
Le notazioni postfisse e prefisse sono in qualsiasi testo di C.
Come mai questo dubbio?

{-_-}
04-12-2007, 21:48
si esattamente quello che pensavo

che non mi ricordavo bene quando il puntatore viene incrementato

avevo il dubbio che scrivendo i++, il puntatore venga incrementato alla fine del ciclo

mentre scrivendo ++i venga incrementato all'inizio del ciclo

mi sbagliavo

grazie

oregon
04-12-2007, 21:58
Ma di quale puntatore parli?

{-_-}
04-12-2007, 22:02
mi sono dimenticato di mettere l'esempio completo, scusate, io intedevo dire
se ho un vettore di stutture chiamato vett_str, voglio ad esempio accedere al campo qta di ogni strutture con un for

for (i=0; i<n; i++){ vett_str[i].qta;}

for (i=0; i<n; ++i){ vett_str[i].qta;}

io pensavo che nel secondo caso saltassi l'elemento vett_str[0], mentra da quanto dettomi prima sono quivalent, era questa la domanda, che ho malditesta e quindi non ho scritto bene la domanda (12 ore di universita...)

oregon
04-12-2007, 22:07
Beh ... e quindi NON c'e' un puntatore ... i e' una variabile intera usata come indice di un array ... c'e' differenza ...

{-_-}
04-12-2007, 22:17
vero, che al momento non conneto, cmq il concetto che volevo capire lo stesso

GreyFox86
04-12-2007, 23:28
i++ e ++i hanno effetti differenti nel momento in cui le usi in espressioni, perch la prima restituisce i e poi lo incrementa mentre la seconda incrementa i e poi restituisce il valore incrementato.
Nel ciclo for che hai mostrato semplicemente rappresentano istruzioni a se stanti quindi non c' differenza.

:ciauz:

duonovembre
05-12-2007, 00:56
esempio pratico
int a = 5;

arr[a++] = 7;
(qui accede ad arr[5])
arr[a] = 8;
(a e' incrementata e qui accede ad arr[6])


------------------------------
int a = 5;
arr[++a] = 7;
(qui accede ad arr[6])
arr[a] = 8;
(anche qui accede ad arr[6])

Loading