Los punteros
permiten simular el paso por referencia, crear y manipular estructuras dinamicas
de datos, tales como listas enlazadas, pilas, colas y árboles. Generalmente las
variables contienen valores especificos. Los punteros son variables pero en vez
de contener un valor especifico, contienen las direcciones de las variables a
las que apuntan. Para obtener o modificar el valor de la variable a la que
apuntan se utiliza el operador de indirección. Los punteros, al ser variables
deben ser declaradas como punteros antes de ser utilizadas.
Sintaxis
int *ptrID, ID;
ID = 8;
ptrID = &ID; // puntero a ID
ptrID es un puntero
a int, mientras que la variable ID es solo una variable del tipo int. Todo
puntero debe ser precedido por un asterisco (*) en la
declaración.
Se puede declarar
más de un puntero en la misma sentencia. En el ejemplo que sigue se ve la
declaración de dos punteros a int.
int *ptrY, *ptrX;
Operadores
Existen dos
operadores a tener en cuenta cuando trabajamos con punteros. El operador
de dirección (&) que devuelve la dirección de memoria de su
operando y el operador de indirección (*) que devuelve un
alias para el objeto al cual apunta el operando del puntero.
En el siguiente
ejemplo vemos como se inicializa una variable X con el valor 15. Luego se crea
un puntero a int y por último el puntero pasa a apuntar a la variable X. Esto
es, ptrX es un puntero a X.
int X = 15;
int *ptrX;
ptrX = &X;
Punteros y matrices
Las matrices son
punteros constantes. Una matriz sin subindice es un puntero al primer elemento
de la matriz.
int X[15];
int *ptrX;
ptrX = &X; // ptrX recibe la dirección del primer elemento ( 0
) de X
Así como también
podría escribirse
int X[15];
int *ptrX;
ptrX = &X[0]; // ptrX es igual a la dirección del primer elemento
de X
Se pueden utilizar
distintos elementos de la matriz teniendo en cuenta la sintaxis de punteros.
int X[15], Y, *ptrX;
ptrX = X;
Y = *( ptrX + 7 );
En este caso puede
verse que Y toma el valor del elemento 7 de la matriz X, siendo 7 el
desplazamiento dentro de la matriz. El operador de indirección queda fuera del
paréntesis porque tiene una prioridad superior a la del operador +. De no
existir los paréntesis, se sumaria 7 al elemento X[0]. Teniendo en cuenta que
las matrices son punteros constantes, el nombre de la matriz puede tratarse
como un puntero:
Y = *( X + 7 );
Harrah's New Orleans Casino & Hotel - MapYRO
ResponderEliminarProperty Location Located in 서울특별 출장샵 New 제주 출장마사지 Orleans at 40 N Canal St. The property 당진 출장안마 is situated near The Orleans Landing Casino and Casino. The property is 6.1 mi (13.9 km) Rating: 4.5 · 김제 출장마사지 8 거제 출장샵 reviews