actualizar los valores reales utilizando pasar por valor

Quiero saber si hay alguna forma de actualizar los valores originales mediante el uso de pasar por valor.

También quiero saber si puedo devolver la dirección actualizada a main

Aquí no quiero usar pasar por referencia para intercambiar valores originales en main.

#include<stdio.h>
int a = 100;
int f =200;
int *p, * q;
swap(int, int);

main()
     {
    printf("%d %d\n", a,f);
    swap(a, f);

    printf("%d %d\n",a ,f); //values remain same here how to change them
    }

     swap(int a, int f)
    {
        int t;
        p=&a;
        q=&f;

        t=*p;
        *p=*q;
        *q= t;

    printf("%d %d\n",a ,f);
    }

Respuestas a la pregunta(1)

Su respuesta a la pregunta