01: // operatore &
02: #include<stdio.h>
03: #include<stdlib.h>
04: 
05: int a;
06: 
07: int main(int argc, char **argv){
08:   int b;
09:   char c;
10:   float d;
11:   double e[100];
12: 
13:   printf("Gli indirizzi in memoria delle variabili sono:\n");
14: 
15:   printf(" a    si trova in %p (%ld byte)\n", &a, sizeof(a));  // l'operatore & restituisce l'indirizzo di una variabile, %p e' lo specificatore previsto per gli indirizzi
16:   printf(" b    si trova in %p (%ld byte)\n", &b, sizeof(b));
17:   printf(" c    si trova in %p (%ld byte)\n", &c, sizeof(c));
18:   printf(" d    si trova in %p (%ld byte)\n", &d, sizeof(d));
19:   printf(" e    si trova in %p (%ld byte)\n",  e, sizeof(e)); //  si noti come per gli array non occorre usare & 
20:   printf(" e[0] si trova in %p (%ld byte)\n", &e[0], sizeof(e[0]));
21: 
22: 
23: 
24:   return 0;
25: }
26: 
27: /* ESEMPIO ESECUZIONE
28: 
29:  a    si trova in 0x55cfcfe69014 (4 byte)
30:  b    si trova in 0x7ffe63b22ee8 (4 byte)
31:  c    si trova in 0x7ffe63b22ee7 (1 byte)
32:  d    si trova in 0x7ffe63b22eec (4 byte)
33:  e    si trova in 0x7ffe63b22ef0 (800 byte)
34:  e[0] si trova in 0x7ffe63b22ef0 (8 byte)
35: 
36: 
37: Curioso come l'indirizzo di a sia cosi' differente...
38: */
39: 
40: 
41: 


Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it