home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.disi.unige.it
/
2015-02-11.ftp.disi.unige.it.tar
/
ftp.disi.unige.it
/
pub
/
.person
/
CataniaB
/
teach-act
/
esempi
/
Puntatori
/
punta.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-04-06
|
1KB
|
58 lines
#include <stdio.h>
/* Puntatori: un tipo particolare di valori che denotano "indirizzi"
di locazione (valori sinistri) */
main()
{
int x,y;
int *ptr; /* ptr indirizzo ad una locazione di tipo intero */
/* IL valore di p e' un indirizzo. Al momento della dichiarazaione
* viene inizializzato con NULL (=0). */
printf("\n %p",ptr); /* %p --> tipo puntatore */
/* cioe' 0 : *p (il contenuto di p) non e' definito! */
/* Occorre "allocare" una cella per p prima di poter usare il suo
* indirizzo ad esempio usando l'operatore "&" */
x=0;
ptr=&x; /* &x=indirizzo della locazioneádi x,
* ora ptr punta alla locazione di x*/
y=*ptr;
printf("\n %p %d %p %d %d",&x,x,ptr,*ptr,y);
/* output: 0xbffff660 0 0xbffff660 0 0 */
x++; /* modifico valore di x ma anche di *ptr!! */
printf("\n %p %d %p %d",&x,x,ptr,*ptr);
/* output: 0xbffff660 1 0xbffff660 1 */
/* viceversa*/
*ptr=6; /* modifico valore di *ptr e quindi anche di x! */
printf("\n %p %d %p %d",&x,x,ptr,*ptr);
/* output: 0xbffff660 6 0xbffff660 6 */
ptr=&y; /* ora ptr punta a y */
++*ptr; /* incrementa il valore di *ptr(cioe' y) di 1 */
(*ptr)++; /* incrementa il valore di *ptr(cioe' y) di 1 */
printf("\n %d %d",*ptr,y);
/* output: 2 2 */
}