¿Qué son los punteros en lenguaje C?
Para aprender sugerencias, primero debe comprender los siguientes conceptos: la dirección de una variable, el contenido de una variable, direccionamiento directo y direccionamiento indirecto.
La dirección de la variable: la primera dirección del espacio de almacenamiento que ocupa la variable en la memoria.
El contenido de la variable: los datos almacenados en la unidad de almacenamiento de la variable.
Por ejemplo
int a=10; //Dos bytes
Supongamos que a ocupa las unidades de almacenamiento con direcciones 2020 y 2021
La unidad de almacenamiento en la dirección 2020 es el byte bajo de datos a (es decir, 10) y la unidad de almacenamiento en la dirección 2021 es el byte alto de datos a (es decir, 10).
Si la primera dirección 2020 de la variable a se almacena en otra variable p, entonces para acceder a la variable a, podemos obtener la dirección 2020 de a de la variable p y acceder a la variable a desde esa dirección.
Direccionamiento directo: Accede directamente al contenido de la variable a través del nombre de la variable.
Las variables utilizadas específicamente para almacenar datos basados en direcciones son variables de puntero, como p.
Direccionamiento indirecto: el acceso indirecto a una variable (como a) a través de una variable de puntero (como p) se denomina direccionamiento indirecto.
En el ejemplo anterior, la dirección de a está representada por amp;a. Dado que p guarda datos de dirección, la dirección de p=a=amp;a
En este caso, p se llama puntero (o variable de puntero)
Se define de la siguiente manera :
int *p;
Los punteros tienen muchos beneficios:
1. Proporcionan métodos para que las funciones modifiquen valores de variables.
2. Proporcionar soporte para la asignación de memoria dinámica en lenguaje C.
3. Proporcionar soporte para estructuras de datos dinámicas.
4. Puede mejorar la eficiencia del programa.