C/Vettori e puntatori/Interscambiabilità tra puntatori e vettori: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
BimBot (discussione | contributi)
m robot Aggiungo: de:C-Programmierung: Zeiger Modifico: pl:C/Wskaźniki
Pietrodn (discussione | contributi)
+sintassi colorata
Riga 7:
Perciò:
 
<source lang="c">
a == &a[0]
*a == a[0]
</source>
 
Esempio:
 
<source lang="c">
#include <stdio.h>
#include <stdlib.h>
Line 26 ⟶ 29:
return (*a==a[0]);
}
</source>
 
 
La funzione ''prova()'' restituirà 1 (<tt>true</tt>).
Line 36 ⟶ 39:
L'[[Linguaggio_C/Vettori_e_puntatori/Puntatori#Aritmetica_dei_puntatori|aritmetica dei puntatori]] permette di accedere a qualsiasi elemento di un array addizionando un certo valore al puntatore al primo elemento dell'array.
 
<source lang="c">
#include <stdio.h>
#include <stdlib.h>
Line 45 ⟶ 49:
return 0;
}
</source>
 
Questo programma restituirà <tt>d d</tt>, perché <tt>a[3]</tt> e <tt>*(a+3)</tt> sono uguali.
Line 52 ⟶ 57:
Si può usare l'aritmetica dei puntatori anche per accedere ad array multidimensionali, perché gli elementi, per il compilatore, sono ordinati uno dopo l'altro in tutti i tipi di array. In questo esempio si prenderà in considerazione un array 5&times;3.
 
<source lang="c">
#include <stdio.h>
#include <stdlib.h>
Line 63 ⟶ 69:
return 0;
}
</source>
 
Questo programma restituirà <tt>h h</tt>. È stata operata una {{IndexItem|conversione cast}}''conversione cast'' sul puntatore <tt>a</tt> per assicurarsi che fosse un puntatore ad un valore <tt>char</tt>. Si è poi addizionato a questo puntatore una riga (5 elementi) e 2 elementi, per ottenere il carattere che sta sulla seconda riga alla terza colonna (ricordarsi che il primo elemento di un array è <tt>[0][0]</tt>).