ポインターの使用方法を示す C プログラム

ポインターの使用を作成、初期化、および実証する C プログラムを作成します。 C プログラミングでポインター変数を使用して値とアドレスにアクセスする方法。

必要な知識

基本的な C プログラミング、ポインター

ポインタの基本

C は高レベルのプログラミング言語であるため、低レベルのプログラミングでは非常に強力です。

ポインターは、そのような低レベルのメモリ処理を提供するツールの 1 つです。メモリ内のデータは、一連のバイトとして編成されます。各バイトは、一意のアドレスを介してアクセスされます。これらのアドレスの範囲は、ゼロ (0) から正の整数までです。 C プログラミングのポインターは、低レベルのメモリ アクティビティを処理する効率的な方法を提供します。

他の変数と同様に、ポインタでもポインタ型の変数を宣言できます。さて、それはどういう意味ですか?他の変数と同様に、ポインター変数を宣言できます。しかし、ポインタ変数にはどのようなデータ型が含まれているのでしょうか?他の変数とは異なり、ポインターは他の変数のメモリアドレスを保持します。これらのメモリ アドレスの使用方法と、ポインターが C プログラマーにとって魔法の杖である方法については後で説明します。いくつかのポインターの概念に慣れましょう。

任意の変数のメモリ アドレスの読み取り

宣言されたすべての変数には、名前、メモリの場所、および値があることがわかっています。 Name は、変数の宣言中に指定する識別子名です。値は、変数に含まれる定数です。
例 - int num =10; num は変数名で、10 はその変数に格納されている値です。しかし、メモリ アドレスはどうでしょうか?

C プログラミングでは、単項 &(Address of) 演算子を使用して、任意の変数のメモリ アドレスを取得します。任意の変数を前に付けた場合の演算子のアドレスは、その変数の実際のメモリ アドレスを返します。変数の実際のメモリ アドレスを取得するプログラムを見てみましょう。

演算子のアドレスを使用してメモリ アドレスを取得するプログラム

/**
 * C program to get memory address using address of operator
 */

#include <stdio.h>

int main()
{
    /* Simple declarations */
    char character = 'C';
    int integer = 1;
    float real = 10.4f;
    long long biginteger = 989898989ll;

    /* Print variable value with their memory address */
    printf("Value of character = %c, Address of character = %u\n", character, &character);
    printf("Value of integer = %d, Address of integer = %u\n", integer, &integer);
    printf("Value of real = %f, Address of real = %u\n", real, &real);
    printf("Value of biginteger = %lld, Address of biginteger = %u", biginteger, &biginteger);

    return 0;
}

注: 上記のプログラムは、異なるシステムでは異なる結果を生成します。また、%u 以外のフォーマット指定子を使用してメモリ アドレスを表示することもできます。整数を出力する任意の書式指定子を使用できます。 %x %d %i %ld などを使用してみてください。

出力

Value of character = C, Address of character = 6356751
Value of integer = 1, Address of integer = 6356744
Value of real = 10.400000, Address of real = 6356740
Value of biginteger = 989898989, Address of biginteger = 6356728

ポインタ変数の作成、初期化、および使用

ポインターは、多くの低レベルのメモリー操作 (動的メモリー割り当てを含む) を処理できます。ただし、ポインターの詳細に入る前に、まずポインター変数を宣言する方法を学びましょう。他の変数宣言と同様に、ポインターも同じ構文に従います -

ポインタ変数を宣言する構文

<data-type> * <variable-name>

ポインタ宣言の例

int * integer_pointer;
float * float_ptr
char * charPtr;
long * lptr;

ポインタ変数を作成、初期化、使用するプログラム

/**
 * C program to create, initialize and use pointers
 */

#include <stdio.h>

int main()
{
    int num = 10;
    int * ptr;

    /* Stores the address of num to pointer type */
    ptr = &num;

    printf("Address of num = %d\n", &num);
    printf("Value of num = %d\n", num);

    printf("Address of ptr = %d\n", &ptr);
    printf("Value of ptr = %d\n", ptr);
    printf("Value pointed by ptr = %d\n", *ptr);

    return 0;
}

出力

Address of num = 6356748.
Value of num = 10
Address of ptr = 6356744
Value of ptr = 6356748
Value pointed by ptr = 10

楽しいコーディング 😉

おすすめの投稿

  • 配列と行列のプログラミング演習
  • 文字列プログラミング演習
  • 関数と再帰プログラミングの演習