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;
}