I
IOSTD
Invitado
Piensa en la memoria como una matriz de bits que se agrupan en 8 y forman byte, cada byte tiene una dirrección en esa matriz con el cual lo podemos identificar
Ahora un puntero es una variable que contiene una dirrección de memoria
Para obtener la dirección de memoria de una variable x se usa el operador &
Esto nos dara la dirrección del primer byte donde se encuentra x pero esto no nos importa lo que nos importa es que esto sea un puntero a x
Ahora como guardo esto pues en una varíable de tipo puntero
int x;
int *puntero = &x;
Recuerda que un puntero de tipo int solo puede contener direcciones de memoria que referencien a una variable de tipo int
Desferenciacion
Cuando tienes un puntero que guarde la dirección de una variable puedes puedes usar la variable original atraves del puntero
Con esto quiero decir que si tiene una variable i y tiene un puntero desferenciado p puedes acceder a i y modificarla desde p
Note que el * hace diferentes cosas en los diferentes casos
Y ya con esto puedes pasarle un puntero a una función y desferenciarlo dentro de la función y con ello modificar la variable desde la función ignorando todo XD
Alguna duda o algun error que cometí me dicen!
Nota: los bits no tienen dirección porque actualmente se trabaja con byte todo los tipos de datos usan byte
Ahora un puntero es una variable que contiene una dirrección de memoria
Para obtener la dirección de memoria de una variable x se usa el operador &
C:
int x;
printf("La dirrección de x es %p, &x);
Ahora como guardo esto pues en una varíable de tipo puntero
int x;
int *puntero = &x;
Recuerda que un puntero de tipo int solo puede contener direcciones de memoria que referencien a una variable de tipo int
Desferenciacion
Cuando tienes un puntero que guarde la dirección de una variable puedes puedes usar la variable original atraves del puntero
Con esto quiero decir que si tiene una variable i y tiene un puntero desferenciado p puedes acceder a i y modificarla desde p
C++:
int i;
int *p = &i;
//i vale 20
i = 20;
//Aqui i vale 30
*p = 30;
Note que el * hace diferentes cosas en los diferentes casos
Y ya con esto puedes pasarle un puntero a una función y desferenciarlo dentro de la función y con ello modificar la variable desde la función ignorando todo XD
Alguna duda o algun error que cometí me dicen!