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

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


C#では、配列名と配列データと同じデータ型へのポインターは、同じ変数型ではありません。たとえば、int*pとint[]pは同じ型ではありません。ポインタ変数pはメモリに固定されていませんが、配列アドレスはメモリに固定されているためインクリメントできますが、インクリメントすることはできません。

これが例です-

using System;

namespace UnsafeCodeApplication {
   class TestPointer {
      public unsafe static void Main() {
         int[] list = {5, 25};
         fixed(int *ptr = list)

         /* let us have array address in pointer */
         for ( int i = 0; i < 2; i++) {
            Console.WriteLine("Address of list[{0}]={1}",i,(int)(ptr + i));
            Console.WriteLine("Value of list[{0}]={1}", i, *(ptr + i));
         }
         Console.ReadKey();
      }
   }
}

出力

これが出力です-

Address of list[0] = 31627168
Value of list[0] = 5
Address of list[1] = 31627172
Value of list[1] = 25

  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