8.4.1、関数/手続きのパラメーターとしてのポインター
ポインターは、関数または手続きーの引数として使用できます。特に、システムAPI関数または他のライブラリーを呼び出す場合、多くの関数引数がポインターを介してデータを渡すことがわかります。関数または手続きへの引数でのポインタの使用に注意してください。
1、ポインター自体はアドレス・データなので、ByVal と ByRef で変更の結果が同じです。値が関数に渡される場合や、プロセスが元のデータを変更しない場合は、プロセス内の実際の関数またはデータは同じアドレスで動作するためです。
したがって、元のデータを変更したくない場合は、データをコピーして関数内のメモリを再割り当てする必要があります。
2、ポインターを操作するとき、演算子 [] または * を使えます。
演算子 [] を使うと、実際には1次元配列の操作と同じで、とても便利です。
3、ポインタを使って関数または手続きを呼び出すときは、アドレス、特に配列をパラメータとして渡す必要があります。
関数または手続きへの引数としてのポインタの使い方を説明するための、ソート例です:
8.4.2、関数の戻り値としてのポインター
ポインタが関数として値を返す場合、アドレスデータを返します。このデータは、単一の変数のアドレスを返すか、配列などの連続したメモリ領域の最初のアドレスを返すことができます。
ポインタで返す場合、値ではなく、返されるデータのアドレスである必要があります。ここでは、ByRefとポインターリターンの違いを区別する必要があります。
構文は次のとおりです:
例:ポインターリターン
例:ByRef で返す場合、アドレスを返す代わりに、戻り値としてグローバル変数が必要です。
8.4.3、関数/手続きへのポインタ
各関数または手続き名は実際にはエントリ(入口)アドレスです。アセンブリに精通している場合、概念を理解するのは簡単です。アセンブリ内のエントリアドレスは、関数名のラベルで定義されたアドレスです。FreeBASICでも同じです。
各関数または手続きにはエントリ(入口)アドレスがありますポインタを使用して関数または手続きにアクセスする場合、アドレスをポイントするだけでよく、これはポインタを変数にポイントするのと同じです。
関数または手続きを宣言する際に注意すべきことの1つは、関数のパラメーターと戻り値が、それを指す関数と一致していることです。
文法:
1、変数として使用
例:
2、パラメーターとして使用
例:
参照ブログ:http://www.office-cn.net/blog-230471-15223.html