コンパイラは、配列のすべての要素に連続したメモリ位置を割り当てます。
ベース アドレスは、配列内の最初の要素の位置です。
例: int a [5] = {10, 20,30,40,50};
これらの 5 つの要素の格納場所は次のとおりです -
&p' が整数ポインターとして宣言されている場合、次の代入によって配列 &a' を指すことができます。 -
p=a or p=&a[0];
ある要素から別の要素に移動します。 p を使用して各 &a の値にアクセスします。ポインターがインクリメントされると、その値は、指すデータ型のサイズだけ増加します。この長さは「スケールファクター」と呼ばれます。
ポインタ p と変数 a の関係は次のとおりです。-
P = &a[0] = 1000 P+1 = &a[1] = 1004 P+2 = &a[2] = 1008 P+3 = &a[3] = 1012 P+4 = &a[4] = 1016
要素のアドレスは、そのインデックスとデータ型のスケーリング係数を使用して計算されます。
a[3]のアドレス=ベースアドレス(スケーリングファクタint of 3*a)
=1000 12
=1012
*(p+3) gives the value of a[3] a[i] = *(p+i)
プログラム
#include<stdio.h> main (){ int a[5]; int *p,i; clrscr (); printf (”Enter 5 lements”); for (i=0; i<5; i++) scanf (“%d”, &a[i]); p = &a[0]; printf (“Elements of the array are”); for (i=0; i<5; i++) printf(“%d”, *(p+i)); getch(); }
Enter 5 elements : 10 20 30 40 50 Elements of the array are : 10 20 30 40 50
以上がC言語のポインタと配列の概念を説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。