ポインターを使用して配列要素を入力および出力する C プログラム

ポインターを使用して配列内の要素を入力し、配列を出力する C プログラムを作成します。 C プログラミングでポインターを使用して配列要素を入力および表示する方法。

入力

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

出力

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

必要な知識

基本的な C プログラミング、配列、ポインター、ポインター、および配列

ポインタを使用して配列にアクセスする方法

メモリ内の配列要素は順番に格納されます。たとえば、指定された配列とそのメモリ表現を考えてみましょう

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

ポインターがある場合は、ptr と言ってください arr[0] を指しています .次に、ポインター演算を簡単に適用して、次の配列要素の参照を取得できます。 (ptr + 1) を使用できます または ptr++ arr[1] を指す .

ポインタを使用して配列要素を入力および出力するプログラム


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

しかし、次のプログラムに移る前に、上記のプログラムを書く別の方法があります。ポインターを使用して配列を処理するより良い方法は、ポインターをインクリメントする代わりに、ポインターの追加を使用することです。

ポインタを使用して配列を入力および出力するプログラム - ベスト アプローチ


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

それでは、ポインター表記よりも配列表記を好む人のために、最後に配列表記を使用して同じプログラムを書きましょう。

配列表記のポインターを使用して配列を入力および出力するプログラム


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

先に進む前に、再帰を使用して配列を読み取って出力する方法を学習していることを確認してください。

出力

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,

おすすめの投稿

  • 配列と行列のプログラミング演習のインデックス
  • ポインタの使用方法を示す C プログラム
  • ポインタを使用して 2 つの数値を加算する C プログラム
  • ポインタを使用して 2 つの数値を交換する C プログラム
  • ポインターを使用してある配列を別の配列にコピーする C プログラム