もちろん、ポインターは、別の変数の参照を格納する変数にすぎません。参照は、その変数が配置されているメモリ空間を意味します。

変数を次のように定義する場合：
int number1 = 10;< - この変数はメモリスペースに保存されます0x245342

変数数を指すポインターを定義する場合：
int *number_puntero =＆number1-> a number_punteroに値0x245342に割り当てられます

number_puntero変数を印刷すると、次のようになります。
0x245342

しかし、一方で、 *number_punteroを印刷する場合：私たちは取得します：
10

*を使用する場合、間接演算子を使用しています。これは、以前のメモリ方向に保存されている値に直接アクセスすることを示しているため、この同じ演算子を使用して、ポインターから元の変数を変更することができます。

*pointer_numero = 22;<-11変数に変更が反映されます
Claro, un puntero no es más que una variable que almacena la referencia de otra variable, con referencia me refiero al espacio de memoria en donde se encuentra esa variable, por ejemplo:

Si definimos una variable de la siguiente forma:
int numero1 = 10; <- esta variable se encuentra almacenada en el espacio de memoria 0x245342

Si definimos un puntero que apunte a la variable número:
int *numero_puntero = &numero1 -> a numero_puntero se le asigna el valor 0x245342

si ahora nosotros imprimieramos la variable numero_puntero, obtendríamos:
0x245342

Pero si por otro lado imprimieramos *numero_puntero: obtendríamos:
10

Al usar *, estamos haciendo uso del operador de indirección, lo que le indicamos que acceda directamente al valor que se encuentra almacenado en la dirección de memoria que previamente tiene, por lo que usando este mismo operador, podemos hacer modificaciones a la variable original desde el puntero.

*puntero_numero = 22; <- cambio se ve reflejado en la variable numero1