void valor(int* x){
*x =100;
}
El anterior modifica la referencia o lo que apunta por ejemplo si x = 10 en el main ahora es x=100, bien para esto hacias uso de :
valor(&x);
como decía ocupas un puntero para modificar una referencia,
entonces si mandas la de un puntero ocupas modificar al puntero con.... otro puntero!!
esto es:
void valor2(int** modx){
**modx=200;
}
Modificaste a x modificando a su vez la referencia o a lo que apunta el primer puntero