Puntatori ... deep inside

Ok, si, sto usando un puntatore a 16 bit, occupa 2 byte , va benissimo così.

Ora visto che siamo in tema adiacente vorrei affrontare un altro mio dubbio amletico .(perdonatevi eventuali domande stupide ma negli ultimi 10 anni ho usato quasi esclusivamente linguaggi interpretati e non ho avuto modo di forgiare competenze un pò più advanced dei linguaggi compilati)

int A = 128; // Creo una variabile di tipo int (2 byte) 

int * prtA = &a; // questo è un puntatore ad A , ovvero una 'variabile' di tipo puntatore che contiene l'indirizzo di memoria della variabile A
//occupa in memoria 2 byte(non perchè contiene un intero ma perchè un puntatore occupa 2 byte,perlomeno su questa architettura)

Veniamo al dunque, per semplicità farò l'esempio col tipo INT (2 byte).

void changeMyVal(int myval)
{
myval ++;
}
// che richiamo in questa maniera
int myInt = 128;
changeMyVal(myInt); 
//giustamente qui il valore di myInt è rimasto 128, perchè nella chiamata è stata creata una variabile myVal che contiene lo stesso valore numerico //(128)della variabile passata dalla chiamata stessa.

Se invece :

void changeMyVal(int * myval)
{
*myval ++;
}

// che richiamo in questa maniera

int myInt = 128;
changeMyVal(&myInt); 
//il valore in di myInt quì è stato correttamente portato a 129 perchè dentro la funzione è stato incrementato.Tuttavia, se non ho capito male, anche in questo caso la chiamata ha creato una variabile di tipo puntatore ad intero(quindi allocando 2 ulteriori byte) contenente la locazione di memoria del mio myInt .

Ora , tralasciando tutto il discorso di scope e visibilità variabili, allocazioni e deallocazioni, la domanda è questa:
E' possibile fare in modo che chiamando una procedura e/o funzione si possa passare per riferimento DIRETTAMENTE una variabile definita in un altro contesto ?

praticamente

int myInt = 128;
int * prtA = &myInt ; // qui ho già creato un puntatore a myInt 

// vorrei chiamare la procedura
changeMyVal(prtA); 
// passando come parametro QUEL ESATTO PUNTATORE per riferimento , e non creandone un altra copia.

oppure anche

int myInt = 128;

// vorrei chiamare la procedura
changeMyVal(myInt); 
// passando come parametro QUELLA VARIABILE ESATTA per riferimento , e non creandone un altra copia.

Sperando di essere stato comprensibile, sto sbarellando o si può fare?
Grazie