For abbreviato

di il
5 risposte

For abbreviato

Come funziona questo for? :
for (; p->next; p= p->next)
se fosse necessario l'ho preso da questo spezzone di codice:

class Node {
      public:
             Node (int d, Node *p=0) : data (d), next (p) {}
             int data;
             Node *next;
 };


int main()
{
      int n;
      Node *p;
      Node *q=0;

            cout << " immetti i dati su una riga separati da spazio e termina con ^X" << endl;
      while ( cin >> n)
            {

            p = new Node (n,q);
            q = p;
            }
      for (; p->next; p= p->next)
          cout << p->data << " -> ";
      cout <<"*\n";


      return 0;
}

5 Risposte

  • Re: For abbreviato

    Basta che ne esamini le parti...
  • Re: For abbreviato

    Io conosco for (da : a : incremento)
    questo che vi ho proposto non capisco come funziona, da dove parte?
  • Re: For abbreviato

    http://it.wikipedia.org/wiki/Ciclo_for#Linguaggio_
  • Re: For abbreviato

    Ho letto, ma non ne ho tratto informazioni a me nuove... forse ho letto male

    for (; p->next; p= p->next)


    for(<inizializzazione>; <test>; <incremento>)
    <istruzione>;

    <inizializzazione> non la vedo
    <test> fin quando .... p->next; ??! ( che vuole dire?)
    <incremento> questo mi pare di averlo capito... si incrementa assegnando a p il puntatore al prossimo nodo (navigando sulla lista )
  • Re: For abbreviato

    <inizializzazione> non la vedo
    Perché in quel caso manca, ma non è obbligatoria nella for quindi può non esserci
    <test> fin quando .... p->next; ??! ( che vuole dire?)
    Il test avviene sul valore di p->next. Finché p->next è diverso da NULL, allora ripete
    <incremento> questo mi pare di averlo capito... si incrementa assegnando a p il puntatore al prossimo nodo (navigando sulla lista )
    Questa era semplice

    Quindi il ciclo viene ripetuto finché p->next è diverso da NULL e in quel caso p diventa il prossimo p->next.

    In realtà p deve essere inizializzato prima del for ma l'inizializzazione sarà all'esterno del for.
Devi accedere o registrarti per scrivere nel forum
5 risposte