c++

Messaggioda zerbo1000 » 24/10/2018, 21:27

In c++ in un codice come questo


double *fd=new double[fn];
fn=0;
for(int i=0;i<n;i++)
if(d[i]-mean>-r*devst && d[i]-mean<r*devst)
fd[fn++]=d[i];
return fd;

se al posto di

fd[fn++]=d[i];

avessi scritto

fd[i]=d[i];

sarebbe stato uguale? è la prima volta che vedo ++ dentro [] in quel senso.

grazie
Una mente matematica cerca un fine, una mente artistica lo stabilisce.
zerbo1000
Senior Member
Senior Member
 
Messaggio: 598 di 1244
Iscritto il: 13/04/2015, 20:29

Re: c++

Messaggioda apatriarca » 25/10/2018, 08:11

No, fn viene incrementato solo quando la condizione è verificata (dopo aver fatto l'assegnamento) mentre i viene incrementato ad ogni iterazione. Quella riga è insomma equivalente a
Codice:
fd[fn] = d[i];
fn = fn + 1;
apatriarca
Moderatore
Moderatore
 
Messaggio: 5141 di 10435
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: c++

Messaggioda zerbo1000 » 25/10/2018, 08:32

ma quindi è possibile sempre usare ++ dentro [] per ottenere quel tipo di incrementazione? non centra che sono fd è un puntatore?
Una mente matematica cerca un fine, una mente artistica lo stabilisce.
zerbo1000
Senior Member
Senior Member
 
Messaggio: 599 di 1244
Iscritto il: 13/04/2015, 20:29

Re: c++

Messaggioda apatriarca » 25/10/2018, 08:39

L'operatore di incremento può essere usato ovunque sia possibile fare un qualche tipo di operazione. Non ha nulla di particolare.
apatriarca
Moderatore
Moderatore
 
Messaggio: 5142 di 10435
Iscritto il: 08/12/2008, 20:37
Località: Madrid


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite