Nelle procedure tu dichiari i parametri come puntatori quindi tu devi passargli il loro indirizzo di memoria.
codice:
#include <stdio.h>
void stampa(int* p, int* q)
{
printf("p: contenuto: %d , indirizzo %p.\n", *p, p);
printf("q: contenuto: %d , indirizzo %p.\n", *q, q);
}
void swap(int *x,int *y)
{
int temp;
temp= *x;
*x=*y;
*y=temp;
}
int main()
{
int p, q;
scanf("%d", &p);
scanf("%d", &q);
printf( "Prima dello scambio:\n");
stampa(&p,&q);
swap(&p,&q);
printf("Dopo lo scambio:\n");
stampa(&p,&q);
return 0;
}