C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

ポインタを使用して配列の要素にアクセスするC++プログラム


ポインタは、変数のメモリ位置またはアドレスを格納します。つまり、ポインタはメモリ位置を参照し、そのメモリ位置に格納されている値を取得することは、ポインタの逆参照と呼ばれます。

ポインタを使用して配列の単一の要素にアクセスするプログラムは、次のようになります-

#include <iostream>
using namespace std;
int main() {
   int arr[5] = {5, 2, 9, 4, 1};
   int *ptr = &arr[2];
   cout<<"The value in the second index of the array is: "<< *ptr;
   return 0;
}

出力

The value in the second index of the array is: 9

上記のプログラムでは、ポインタptrは、配列の3番目のインデックス(9)にある要素のアドレスを格納します。

これは、次のコードスニペットに示されています。

int *ptr = &arr[2];

ポインターが逆参照され、間接(*)演算子を使用して値9が表示されます。これは次のように示されます。

cout<<"The value in the second index of the array is: "<< *ptr;

単一のポインタを使用して配列のすべての要素にアクセスする別のプログラムを次に示します。

#include <iostream>
using namespace std;
int main() {
   int arr[5] = {1, 2, 3, 4, 5};
   int *ptr = &arr[0];
   cout<<"The values in the array are: ";
   for(int i = 0; i < 5; i++) {
      cout<< *ptr <<" ";
      ptr++;
   }
   return 0;
}

出力

The values in the array are: 1 2 3 4 5

上記のプログラムでは、ポインタptrは配列の最初の要素のアドレスを格納します。これは次のように行われます。

int *ptr = &arr[0];

この後、forループを使用してポインターを逆参照し、配列内のすべての要素を出力します。ポインターは、ループの各反復で増分されます。つまり、各ループの反復で、ポインターは配列の次の要素を指します。次に、その配列値が出力されます。これは、次のコードスニペットで確認できます。

for(int i = 0; i < 5; i++) {
   cout<< *ptr <<" ";
   ptr++;
}

  1. 配列要素の乗算のためのC++プログラム

    整数要素の配列で与えられ、タスクは配列の要素を乗算して表示することです。 例 Input-: arr[]={1,2,3,4,5,6,7} Output-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 Input-: arr[]={3, 4,6, 2, 7, 8, 4} Output-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 以下のプログラムで使用されるアプローチは次のとおりです − 一時変数を初期化して、最終結果を1で格納します ループを0からnまで開始します。nは配列のサイズです 最終結果を得るには、tempの値にarr[i]を掛け続

  2. C#でポインターを使用して配列要素にアクセスするにはどうすればよいですか?

    C#では、配列名と配列データと同じデータ型へのポインターは、同じ変数型ではありません。たとえば、int*pとint[]pは同じ型ではありません。ポインタ変数pはメモリに固定されていませんが、配列アドレスはメモリに固定されているためインクリメントできますが、インクリメントすることはできません。 これが例です- 例 using System; namespace UnsafeCodeApplication {    class TestPointer {       public unsafe static void Main() { &nbs