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

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


C#でのポインターの使用には、安全でない修飾子が必要です。また、fixedキーワードを使用したポインターを使用して、配列要素にアクセスできます。これは、配列とポインタのデータ型が同じではないためです。例:データ型int[]はint*と同じではありません。

ポインタを使用して配列要素にアクセスする方法を示すプログラムは次のとおりです。

using System;
namespace PointerDemo {
   class Example {
      public unsafe static void Main() {
         int[] array = {55, 23, 90, 76, 9, 57, 18, 89, 23, 5};
         int n = array.Length;
         fixed(int *ptr = array)
         for ( int i = 0; i < n; i++) {
            Console.WriteLine("array[{0}] = {1}", i, *(ptr + i));
         }
      }
   }
}

出力

上記のプログラムの出力は次のとおりです。

array[0] = 55
array[1] = 23
array[2] = 90
array[3] = 76
array[4] = 9
array[5] = 57
array[6] = 18
array[7] = 89
array[8] = 23
array[9] = 5

上記のプログラムを理解しましょう。

配列には、int型の10個の値が含まれています。ポインタptrは、fixedキーワードを使用して配列の先頭を指します。次に、forループを使用してすべての配列値が表示されます。このためのコードスニペットは次のように与えられます-

int[] array = {55, 23, 90, 76, 9, 57, 18, 89, 23, 5};
int n = array.Length;
fixed(int *ptr = array)
for ( int i = 0; i < n; i++) {
   Console.WriteLine("array[{0}] = {1}", i, *(ptr + i));
}

  1. Androidで配列要素を並べ替える方法は?

    この例は、Androidで配列要素を並べ替える方法を示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −次のコードをres / layout/activity_main.xmlに追加します。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="https://schemas.a

  2. C言語のポインタを使用して配列要素の合計を計算するにはどうすればよいですか?

    ポインタは、他の変数のアドレスを格納する変数です。 次のステートメントを検討してください- int qty = 179; ポインタの宣言 ポインタを宣言するための構文は次のとおりです- int *p; ここで、「p」は他の変数のアドレスを保持するポインタ変数です。 ポインタの初期化 アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。 たとえば、 int qty = 175; int *p; p= &qty; ポインタの配列 これは、アドレスのコレクション(または)ポインターのコレクションです。 宣言 以下は、ポインタの配列の宣言です- dataty