/* Ter programmino */ /* Dichiarazione e utilizzo di puntatori */ /* Copiare un array su un altro con un ciclo for */ /* Funzione getch, per ricevere un carattere senza stamparlo */ /* Ciclo while */ /* Funzione putchar, per stampare un carattere */ /* Puntatori ad array e matematica dei puntatori */ #include int main () { int y, x, i; char ch; int incr = 0; int *ptr; /* Dichiarazione di un puntatore */ int a[5], b[5]; for (i=0; i<5; i++) a[i]=0; /* Inizializzo a 0 l' array[a] */ for (i=0; i<5; i++) b[i]=a[i]; /* Pongo l' array b uguale ad a */ puts ("\nScrivi quello che vuoi, e invio per proseguire\n"); while ((ch =getch()) != '\r') /* \r è l' escape per tornare a capo */ putchar (ch); x=6; ptr=&x; /* Il puntatore ptr punta all'indirizzo di x */ printf ("\n\nIl valore puntato da ptr e' %d", *ptr); ptr = a; puts ("\nOra il puntatore punta al primo elemento dell' array a"); printf ("\nquindi il valore puntato e' %d\n", *ptr); puts ("ora assegnamo alcuni valori all' array b, in modo da avere:"); for (i=0; i<5; i++) { b[i] = incr++; printf ("\nil valore di array b[%d] e' %d\n",i , b[i]); } puts("\nFaccio puntare il puntatore al primo elemento di b"); ptr = b; puts("\nIncremento il puntatore, facendolo puntare al secondo elemento di b"); ptr++; printf ("\nquindi il valore puntato e' %d\n", *ptr); puts("\nIncremento il puntatore, facendolo puntare al prossimo elemento di b"); ptr++; printf ("\nquindi il valore puntato e' %d...ecc\n", *ptr); puts ("\n\nPremi invio per uscire\n"); getch(); /* Getch è una funzione di imput, acquisisce un carattere */ /* senza bisogno di premere invio. Non ha l' eco, */ /* quindi non viene stampato sullo schermo */ return 0; }