¿Diferencia entre int (*p)[3] e int* p[3]?

Los punteros almacenan la dirección de las variables o una ubicación de memoria. Los punteros son una representación simbólica de direcciones. Permiten que los programas simulen llamadas por referencia, así como que creen y manipulen estructuras de datos dinámicas . Su declaración general en C/C++ tiene el formato:

Sintaxis:

tipo de datos *var_name; 

Ejemplo:

int *ptr;

En este ejemplo, «ptr» es un nombre de variable del puntero que contiene la dirección de una variable entera.

En este artículo, el enfoque es diferenciar entre las dos declaraciones de punteros, es decir, int (*p)[3] e int *p[3].

Para int (*p)[3]: aquí “p” es el nombre de la variable del puntero que puede apuntar a una array de tres enteros.

A continuación se muestra un ejemplo para ilustrar el uso de int (*p)[3] :

C++

// C++ program to illustrate the use
// of int (*p)[3]
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    // Declaring a pointer to store address
    // pointing to an array of size 3
    int(*p)[3];
  
    // Define an array of size 3
    int a[3] = { 1, 2, 3 };
  
    // Store the base address of the
    // array in the pointer variable
    p = &a;
  
    // Print the results
    for (int i = 0; i < 3; i++) {
        cout << *(*(p) + i) << " ";
    }
  
    return 0;
}
Producción:

1 2 3

Para int *p[3]: Aquí “p” es una array de tamaño 3 que puede almacenar punteros enteros.

A continuación se muestra un ejemplo para ilustrar el uso de int *p[3] :

C++

// C++ program to illustrate the use
// of int*p[3]
#include <bits/stdc++.h>
using namespace std;
  
// Driver Code
int main()
{
    // Declare an array of size 3 which
    // will store integer pointers
    int* p[3];
  
    // Integer variables
    int a = 1, b = 2, c = 3;
  
    // Store the address of integer
    // variable at each index
    p[0] = &a;
    p[1] = &b;
    p[2] = &c;
  
    // Print the result
    for (int i = 0; i < 3; i++) {
        cout << *p[i] << " ";
    }
  
    return 0;
}
Producción:

1 2 3

Publicación traducida automáticamente

Artículo escrito por ArifShaikh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *