Programma C per inserire e stampare elementi di array usando i puntatori

Programma C per inserire e stampare elementi di array usando i puntatori

Scrivete un programma C per inserire gli elementi in un array e stamparlo usando i puntatori. Come inserire e visualizzare gli elementi dell'array usando il puntatore nella programmazione C.

Esempio

Inserimento

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

Uscita

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

Conoscenze richieste

Programmazione C di base, Array, Puntatori, Puntatori e Array

Come accedere all'array usando il puntatore

Gli elementi dell'array in memoria vengono archiviati in sequenza. Ad esempio, considera l'array dato e la sua rappresentazione in memoria

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

Se hai un puntatore, pronuncia ptr puntando a arr[0] . Quindi puoi facilmente applicare l'aritmetica del puntatore per ottenere il riferimento dell'elemento dell'array successivo. Puoi utilizzare (ptr + 1) o ptr++ per puntare a arr[1] .

Programma per inserire e stampare elementi di array usando il puntatore


/**
 * 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;
}

Ma aspetta prima di passare al programma successivo, c'è un altro modo per scrivere il programma sopra. Devo dire che il modo migliore per gestire gli array usando il puntatore è, invece di incrementare il puntatore, usare l'aggiunta del puntatore.

Programma per inserire e stampare array usando i puntatori - approccio migliore


/**
 * 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;
}

Quindi scriviamo finalmente lo stesso programma usando la notazione di matrice, per coloro che preferiscono la notazione di matrice di più rispetto alla notazione del puntatore.

Programma per inserire e stampare array usando il puntatore nella notazione array


/**
 * 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;
}

Prima di andare avanti assicurati di aver imparato a leggere e stampare array usando la ricorsione.

Uscita

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,

Post consigliati

  • Indice esercizi di programmazione di array e matrici.
  • Programma C per dimostrare l'uso dei puntatori.
  • Programma C per sommare due numeri usando il puntatore.
  • Programma C per scambiare due numeri usando il puntatore.
  • Programma C per copiare un array in un altro usando il puntatore.