Cプログラミング言語でのポインタの配列を説明する
ポインタは、別の変数のアドレスを格納する変数です。
機能
- ポインタはメモリスペースを節約します。
- メモリ位置に直接アクセスできるため、ポインタの実行時間が短縮されます。
- ポインタを使用すると、メモリに効率的にアクセスできます。つまり、メモリは動的に割り当てられ、割り当てが解除されます。
- ポインタはデータ構造で使用されます。
ポインタの宣言と初期化
次のステートメントを検討してください-
int qty = 179;
メモリ内では、変数は次のように表すことができます-
ポインタの宣言
これは、以下に示すように、「p」が別の整数変数のアドレスを保持するポインタ変数であることを意味します-
Int *p;
ポインタの初期化
アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。
例-intqty=175;
int * p;
p =&qty;
ポインタの配列
アドレスのコレクション(または)ポインタのコレクションです
宣言
以下は、ポインタの配列の宣言です-
datatype *pointername [size];
たとえば、
int *p[5];
これは、5つの整数要素アドレスを保持できるポインタの配列を表します。
初期化
「&」は初期化に使用されます。
たとえば、
int a[3] = {10,20,30}; int *p[3], i; for (i=0; i<3; i++) (or) for (i=0; i<3,i++) p[i] = &a[i]; p[i] = a+i;
アクセス
アクセスには間接演算子(*)を使用します。
たとえば、
for (i=0, i<3; i++) printf ("%d", *p[i]);
サンプルプログラム
以下に示すのは、ポインタの配列のプログラムです-
#include<stdio.h> main ( ){ int a[3] = {10,20,30}; int *p[3],i; for (i=0; i<3; i++) p[i] = &a[i]; printf ("elements of the array are \n"); for (i=0; i<3; i++) printf ("%d \t", *p[i]); }
出力
上記のプログラムを実行すると、次の結果が得られます-
elements at the array are : 10 20 30
例2
以下に示すのは、文字列へのポインタの配列のプログラムです-
#include <stdio.h> #include <stdlib.h> int main(void){ char *a[5] = {"one", "two", "three", "four", "five"}; int i; printf ( "the strings are at locations:\n"); for (i=0; i<5; i++) printf ("%d\n", a[i]); return 0; }
出力
上記のプログラムを実行すると、次の結果が得られます-
The strings are at locations: 4210688 4210692 4210696 4210702 4210707
-
ユニオンにC言語でのポインタを説明する
ユニオンはメモリロケーションと呼ばれ、さまざまなデータ型のいくつかの変数によって共有されます。 構文 構文は次のとおりです- union uniontag{ datatype member 1; datatype member 2; ---- ---- datatype member n; }; たとえば、 union sample{ int a; float b; char c; }
-
C言語でのポインタアクセスの概念を説明する
ポインタは、他の変数のアドレスを格納する変数です。 ポインタの宣言、初期化、アクセス 次のステートメントを検討してください- int qty = 179; ポインタの宣言 int *p; 「p」は、別の整数変数のアドレスを保持するポインタ変数です。 ポインタの初期化 アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。 int qty = 175; int *p; p= &qty; 文字列の配列内の要素にアクセスする際にポインタがどのように役立つかの例を考えてみましょう。 このプログラムでは、特定の場所に存在する要素にアクセスしようとしています。操