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
/
rif.c
< prev
Wrap
C/C++ Source or Header
|
1997-04-09
|
1KB
|
47 lines
#include <stdio.h>
/* Passaggio per valore come visto fino ad ora: */
void p(int x)
{
x=x+1;
printf("%d",x);
}
main()
{
int x=6;
p(x); /* poiche' x "vale" 6: equivale a p(6) !!! */
}
---------------------------------------------------------------------------
/* Passaggio per valore che simula quello per riferimento.
void q(int * x) /* argomenti di tipo puntatore a intero (tipo
della variabile che vogliamo modificare come
side effect
{
*x=(*x) + 1;
}
main()
{
int x=6;
int * p; /* puntatore a intero */
p=&x;
printf("%p",p); /* stampa un indirizzo, ad es: 0xbffff630 */
q(p); /* oppure direttamente q(&x), equivale a q(0xbffff630)
cioe' il passaggio e' sempre per valore!!
Cambia il tipo del valore (..un indirizzo) e il modo
di usarlo dentro q (si modifica il contenuto della
locazione corrispondente).
*/
printf("%d",x); /* oppure printf("%d",*y): stampa 7 */
}