ポインタと配列の関係



1次元int型配列を考えてみましょう。

int arr[3] ; // 이 배열의 이름도 사실 포인터이다. 
長さ3のアレイを宣言すると、
配列の名前arrはポインタ変数と同じ役割を果たします.もちろんint*arrで宣言するのがポインタですが、配列がこのように宣言する必要はありません.ポインタです.
arrは、配列内の最初の要素(=0インデックス)を指すポインタです.
ただし、定数を指すターゲットを「定数ポインタ」に置き換えることはできません.
はい.
int main(void)
{

	
    int arr[3] = {10, 20, 30} ;
    int *ptr = &arr[0]; // 
    
    printf("%d %d \m", ptr[0], arr[0]);
    printf("%d %d \m", ptr[1], arr[1]);
    printf("%d %d \m", ptr[2], arr[2]);
    
    return 0;
}
10 10
20 20
30 30
arrは、intポインタまたはintポインタに対して配列アクセスのインデックス演算を行うことができる.実際、ポインタ変数ptrについては、各インデックスptr[0]、ptr[1]ptr[2]と同様にメモリにアクセスすることができる.

結論:(int*ptr=&arr[0])=arr


配列の名前は、0番目のインデックスを指すポインタです.ただし、これは変更できない定数です.