01: // equivalenza array e puntatori
02: #include<stdio.h>
03: #include<stdlib.h>
04:
05:
06: int main(int argc, char **argv){
07:
08: int a[]={23, 45, 2, 4, 9, 34, 34, 23, 90, 17, 18, 19};
09: int *pa;
10:
11:
12: printf("Il mio array a[] si trova in memoria all'indirizzo %p\n", a); // indirizzo di memoria array lo ottengo usando il nome dell'array SENZA []
13: printf("Il mio array a[] si trova in memoria all'indirizzo %p\n", &a[0]); // l'indirizzo del primo elemento e' comunque l'indirizzo dell'array
14:
15: pa = a; // memorizzo nel puntatore l'indirizzo dell'array (equivalente a pa=&a[0])
16:
17: printf("Il primo elemento dell'array contiene %d\n", *pa); // int che trovo a quell'indirizzo
18:
19: printf("Il primo e il secondo elemento dell'array contengono %d e %d\n", pa[0], pa[1]); // anche per i puntatori posso usare le []
20: printf("Il primo elemento dell'array contiene %d\n", *a); // vale anche il viceversa!
21:
22: printf("sizeof(array) restituisce %ld\n", sizeof(a)); // sizeof() si comporta pero' diversamente
23: printf("sizeof(puntatore) restituisce %ld\n", sizeof(pa));
24:
25: return 0;
26: }
27:
28: /*
29: ESECUZIONE
30:
31: Il mio array a[] si trova in memoria all'indirizzo 0x7fff35820770
32: Il mio array a[] si trova in memoria all'indirizzo 0x7fff35820770
33: Il primo elemento dell'array contiene 23
34: Il primo e il secondo elemento dell'array contengono 23 e 45
35: Il primo elemento dell'array contiene 23
36: sizeof(array) restituisce 48
37: sizeof(puntatore) restituisce 8
38:
39: */
40:
Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it