ポインタと配列の関係
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番目のインデックスを指すポインタです.ただし、これは変更できない定数です.
Reference
この問題について(ポインタと配列の関係), 我々は、より多くの情報をここで見つけました https://velog.io/@marintelli/C-포인터와-배열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol