ポインタと配列は、密接な関わりがあります。
#include <stdio.h>
void main(void) {
char array[5];
char* p;
array[0] = 's';
array[1] = 't';
array[2] = 'a';
array[3] = 'r';
array[4] = '\0';
p = array;
}
上のようなプログラムの場合、
p = array; と言う文は、
どんな意味になるでしょうか。
配列名だけを書くと、その配列の先頭アドレスを表す事になります。
(p = &array[0]; と同じ意味となります。)
ここでは、arrayの先頭アドレスをポインタ変数pに代入してるので、
以後、pとarrayは同じものとして扱えます。
例えば
p = array; の実行後、*p と array[0] は同じ値を指す事になります。
また、ポインタ型変数p に添え字をつけて表現する事もできます。
p = array; の実行後、p[0] は、array[0] と同等。
p[3] は、array[3] と同等となります。
■参考記事
ポインタのアドレス計算