Programa C para ingresar e imprimir elementos de matriz usando punteros

Programa C para ingresar e imprimir elementos de matriz usando punteros

Escriba un programa en C para ingresar elementos en una matriz e imprima una matriz usando punteros. Cómo ingresar y mostrar elementos de matriz usando un puntero en programación C.

Ejemplo

Entrada

Input array size: 10
Input elements: 1
2
3
4
5
6
7
8
9
10

Salida

Array elements: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Conocimiento requerido

Programación básica en C, matriz, punteros, punteros y matriz

Cómo acceder a la matriz usando el puntero

Los elementos de la matriz en la memoria se almacenan secuencialmente. Por ejemplo, considere la matriz dada y su representación de memoria

int arr[] = {10, 20, 30, 40, 50};

Si tiene un puntero, diga ptr apuntando a arr[0] . Luego, puede aplicar fácilmente la aritmética de punteros para obtener la referencia del siguiente elemento de la matriz. Puedes usar (ptr + 1) o ptr++ apuntar a arr[1] .

Programa para ingresar e imprimir elementos de matriz usando un puntero


/**
 * C program to input and print array elements using pointers
 */

#include <stdio.h>

#define MAX_SIZE 100 // Maximum array size

int main()
{
    int arr[MAX_SIZE];
    int N, i;
    int * ptr = arr;    // Pointer to arr[0] 

    printf("Enter size of array: ");
    scanf("%d", &N);

    printf("Enter elements in array:\n");
    for (i = 0; i < N; i++)
    {
        scanf("%d", ptr);

        // Move pointer to next array element
        ptr++;   
    }

    // Make sure that pointer again points back to first array element
    ptr = arr;

    printf("Array elements: ");
    for (i = 0; i < N; i++)
    {
        // Print value pointed by the pointer
        printf("%d, ", *ptr);

        // Move pointer to next array element
        ptr++;
    }

    return 0;
}

Pero espere antes de pasar al siguiente programa, hay otra forma de escribir el programa anterior. Debo decir que la mejor manera de lidiar con las matrices usando un puntero es, en lugar de incrementar el puntero, usar la adición de puntero.

Programa para ingresar e imprimir una matriz usando punteros - mejor enfoque


/**
 * C program to input and print array elements using pointers
 */

#include <stdio.h>

#define MAX_SIZE 100 // Maximum array size

int main()
{
    int arr[MAX_SIZE];
    int N, i;
    int * ptr = arr;    // Pointer to arr[0] 

    printf("Enter size of array: ");
    scanf("%d", &N);

    printf("Enter elements in array:\n");
    for (i = 0; i < N; i++)
    {
        // (ptr + i) is equivalent to &arr[i]
        scanf("%d", (ptr + i));   
    }

    printf("Array elements: ");
    for (i = 0; i < N; i++)
    {
        // *(ptr + i) is equivalent to arr[i]
        printf("%d, ", *(ptr + i));
    }

    return 0;
}

Así que finalmente escribamos el mismo programa usando la notación de matriz, para aquellos que prefieren la notación de matriz más que la notación de puntero.

Programa para ingresar e imprimir una matriz usando un puntero en notación de matriz


/**
 * C program to input and print array elements using pointer in array notation
 */

#include <stdio.h>

#define MAX_SIZE 100 // Maximum array size

int main()
{
    int arr[MAX_SIZE];
    int N, i;
    int * ptr = arr;    // Pointer to arr[0] 

    printf("Enter size of array: ");
    scanf("%d", &N);

    printf("Enter elements in array:\n");
    for (i = 0; i < N; i++)
    {
        // &ptr[i] is equivalent to &arr[i]
        scanf("%d", &ptr[i]);   
    }

    printf("Array elements: ");
    for (i = 0; i < N; i++)
    {
        // i[ptr] is equivalent to arr[i], i[arr] and ptr[i]
        // I have used i[ptr] syntax for knowledge. You can also use ptr[i]
        printf("%d, ", i[ptr]);
    }

    return 0;
}

Antes de continuar, asegúrese de haber aprendido a leer e imprimir matrices usando recursividad.

Salida

Enter size of array: 10
Enter elements in array:
1
2
3
4
5
6
7
8
9
10
Array elements: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

Publicaciones recomendadas

  • Índice de ejercicios de programación de matrices y arreglos.
  • Programa en C para demostrar el uso de punteros.
  • Programa en C para sumar dos números usando puntero.
  • Programa en C para intercambiar dos números usando el puntero.
  • Programa en C para copiar una matriz a otra usando un puntero.