Puntero a una array : El puntero a una arraytambién se conoce comopuntero de array. Estamos usando el puntero para acceder a los componentes de la array.
int a[3] = {3, 4, 5 }; int *ptr = a;
Tenemos un puntero ptr que se enfoca en el componente 0 de la array. Del mismo modo, podemos declarar un puntero que apunte a toda la array en lugar de solo a un componente de la array. Sintaxis :
data type (*var name)[size of array];
Declaración del puntero a una array:
// pointer to an array of five numbers int (* ptr)[5] = NULL;
La declaración anterior es el puntero a una array de cinco enteros. Usamos paréntesis para pronunciar puntero a una array. Dado que el subíndice tiene mayor prioridad que el direccionamiento indirecto, es fundamental encerrar el operador de direccionamiento indirecto y el nombre del puntero entre corchetes. Ejemplo:
C++
// C++ program to demonstrate // pointer to an array. #include <iostream> using namespace std; int main() { // Pointer to an array of five numbers int(*a)[5]; int b[5] = { 1, 2, 3, 4, 5 }; int i = 0; // Points to the whole array b a = &b; for (i = 0; i < 5; i++) cout << *(*a + i) << endl; return 0; } // This code is contributed by sarajadhav12052009
C
// C program to demonstrate // pointer to an array. #include <stdio.h> int main() { // Pointer to an array of five numbers int(*a)[5]; int b[5] = { 1, 2, 3, 4, 5 }; int i = 0; // Points to the whole array b a = &b; for (i = 0; i < 5; i++) printf("%d\n", *(*a + i)); return 0; }
1 2 3 4 5
Array de punteros :“Array de punteros” es una array de lasvariables de puntero. También se conoce como arrays de punteros. Sintaxis:
int *var_name[array_size];
Declaración de una array de punteros:
int *ptr[3];
Podemos crear variables de puntero independientes que apunten a los diferentes valores o podemos crear una array entera de punteros que apunten a todos los valores. Ejemplo:
C++
// C++ program to demonstrate // example of array of pointers. #include <iostream> using namespace std; const int SIZE = 3; int main() { // creating an array int arr[] = { 1, 2, 3 }; // we can make an integer pointer array to // storing the address of array elements int i, *ptr[SIZE]; for (i = 0; i < SIZE; i++) { // assigning the address of integer. ptr[i] = &arr[i]; } // printing values using pointer for (i = 0; i < SIZE; i++) { cout << "Value of arr[" << i << "] = " << *ptr[i] << endl; } } // This code is contributed by sarajadhav12052009
C
// C program to demonstrate // example of array of pointers. #include <stdio.h> const int SIZE = 3; void main() { // creating an array int arr[] = { 1, 2, 3 }; // we can make an integer pointer array to // storing the address of array elements int i, *ptr[SIZE]; for (i = 0; i < SIZE; i++) { // assigning the address of integer. ptr[i] = &arr[i]; } // printing values using pointer for (i = 0; i < SIZE; i++) { printf("Value of arr[%d] = %d\n", i, *ptr[i]); } }
Value of arr[0] = 1 Value of arr[1] = 2 Value of arr[2] = 3
Ejemplo: Del mismo modo, podemos crear una array de punteros al carácter para almacenar una lista de strings.
C
#include <stdio.h> const int size = 4; void main() { // array of pointers to a character // to store a list of strings char* names[] = { "amit", "amar", "ankit", "akhil" }; int i = 0; for (i = 0; i < size; i++) { printf("%s\n", names[i]); } }
amit amar ankit akhil