Fortran-pointers
提供:Dev Guides
Fortran-ポインター
ほとんどのプログラミング言語では、ポインター変数はオブジェクトのメモリアドレスを格納します。 ただし、Fortranでは、ポインターはメモリアドレスを格納するだけでなく、より多くの機能を持つデータオブジェクトです。 タイプ、ランク、エクステント、メモリアドレスなど、特定のオブジェクトに関する詳細情報が含まれています。
ポインターは、割り当てまたはポインターの割り当てによってターゲットに関連付けられます。
ポインター変数の宣言
ポインター変数は、ポインター属性で宣言されます。
次の例は、ポインタ変数の宣言を示しています-
ポインタが指すことができます-
- 動的に割り当てられたメモリの領域。
- target 属性を持つ、ポインターと同じタイプのデータオブジェクト。
ポインターにスペースを割り当てる
上記のコードをコンパイルして実行すると、次の結果が生成されます-
ターゲットと関連付け
ターゲットは別の通常の変数で、スペースが確保されています。 ターゲット変数は target 属性で宣言する必要があります。
関連演算子(⇒)を使用して、ポインター変数をターゲット変数に関連付けます。
概念を実証するために、前の例を書き換えましょう-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
ポインタは-
- 未定義
- 関連する
- 分離
上記のプログラムでは、⇒演算子を使用して、ポインターp1をターゲットt1に*関連付け*ています。 関連付けられた関数は、ポインターの関連付けステータスをテストします。
同じターゲットを指すポインターが複数存在する可能性があるため、Nullifyはターゲットを空にしません。 ただし、ポインターを空にすると、無効化も暗示されます。
例1
次の例は、概念を示しています-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
コードを実行するたびに、メモリアドレスが異なることに注意してください。
例2
上記のコードをコンパイルして実行すると、次の結果が生成されます-