【C言語】ポインタを使って配列を操作する方法を解説

この記事では、ポインタを使って配列を操作する方法と、ポインタと配列の注意点について説明します。

配列の要素へのアクセスや変更、要素の追加や削除など、ポインタを使った配列の操作方法を学ぶことができます。

また、ポインタの範囲外アクセスやNULLチェック、メモリの解放など、ポインタと配列の注意点も理解することができます。

初心者の方にもわかりやすく解説していますので、ぜひ参考にしてください。

目次から探す

ポインタを使った配列の操作方法

配列は、複数のデータをまとめて扱うためのデータ構造です。

ポインタを使って配列を操作することで、より柔軟なプログラミングが可能になります。

以下では、ポインタを使った配列の操作方法について説明します。

配列の要素へのアクセス

配列の要素へのアクセスには、インデックスを使います。

インデックスは、配列の先頭要素からのオフセットを表します。

ポインタを使って配列の要素にアクセスする場合、以下のような方法があります。


int array[5] = {1, 2, 3, 4, 5};
int *ptr = array;  // ポインタに配列の先頭アドレスを代入
// インデックスを使って要素にアクセス
printf("%d\n", array[0]);  // 出力: 1
// ポインタを使って要素にアクセス
printf("%d\n", *ptr);  // 出力: 1

配列の要素の変更

配列の要素を変更するには、ポインタを使って要素のアドレスにアクセスし、値を代入します。

以下の例では、配列の2番目の要素を変更しています。


int array[5] = {1, 2, 3, 4, 5};
int *ptr = array;  // ポインタに配列の先頭アドレスを代入
// インデックスを使って要素を変更
array[1] = 10;
printf("%d\n", array[1]);  // 出力: 10
// ポインタを使って要素を変更
*(ptr + 1) = 20;
printf("%d\n", *(ptr + 1));  // 出力: 20

配列の要素の追加と削除

配列の要素を追加するには、新しい配列を作成し、元の配列の要素をコピーする必要があります。

同様に、要素を削除するには、削除したい要素以降の要素を前に詰める必要があります。

以下の例では、要素の追加と削除の方法を示しています。


int array[5] = {1, 2, 3, 4, 5};
int *ptr = array;  // ポインタに配列の先頭アドレスを代入
// 要素の追加
int newArray[6];
for (int i = 0; i < 5; i++) {
    newArray[i] = array[i];
}
newArray[5] = 6;
// 要素の削除
for (int i = 2; i < 5; i++) {
    array[i] = array[i + 1];
}
// 結果の出力
for (int i = 0; i < 6; i++) {
    printf("%d ", newArray[i]);
}
printf("\n");  // 出力: 1 2 3 4 5 6
for (int i = 0; i < 4; i++) {
    printf("%d ", array[i]);
}
printf("\n");  // 出力: 1 2 4 5

以上が、ポインタを使った配列の操作方法の基本です。

ポインタを使うことで、配列の要素へのアクセスや変更が容易になります。

是非、実際にコードを書いて試してみてください。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す