PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
13112 | 00/09/06 02:18:51 | RE(8):PBでの外部関数によるポインタの使用 By ryochan |
13111 | 00/09/05 18:34:36 | PBでの外部関数によるポインタの使用(総括のコメント) By M.M |
13107 | 00/09/05 17:45:23 | RE(6):PBでの外部関数によるポインタの使用(7):API引数 By ryochan |
13106 | 00/09/05 17:34:59 | RE(5):PBでの外部関数によるポインタの使用(6):ref宣言 By ryochan |
13105 | 00/09/05 17:33:57 | RE(4):PBでの外部関数によるポインタの使用(5):string By ryochan |
13104 | 00/09/05 17:33:11 | RE(3):PBでの外部関数によるポインタの使用(4):string By ryochan |
13103 | 00/09/05 17:31:00 | RE(2):PBでの外部関数によるポインタの使用(3):構造体2 By ryochan |
13102 | 00/09/05 17:30:14 | RE(1):PBでの外部関数によるポインタの使用(2):構造体 By ryochan |
13101 | 00/09/05 17:28:56 | PBでの外部関数によるポインタの使用(1):ポインタの説明 By ryochan |
カテゴリ:スクリプトの記述
日付:2000年09月05日 17:28 発信者:ryochan
題名:PBでの外部関数によるポインタの使用(1):ポインタの説明
ryochan@おおぼけかましです。
外部関数での構造体の引き渡し、ポインタの使用について、
Takaさんの意見も参考にし、
私なりの意見がまとまりましたので、報告します。
とうことで別スレッドにしました。
ポインタを知らない人にも解るように書きました。
大作です、お暇なときにどうぞ。
こんなの知ってるよという方は読み飛ばして下さい。
また、意見があるかたは容赦なく突っ込んでください。
まず、
***ポインタの説明***
関数の引数にデータを渡す場合
2つの方法があります。
1つは値渡し、もう一つは参照渡し(ポインタ)
です。
PBでは関数の引数の設定にvalueとかreference
の設定がありますよね。
PB内部ではvalueは値渡し、referenceは参照渡し
となります。あとreadonlyがありますがこれは
後から説明します。
値渡しだと、呼び出し側の引数の変数変数または
定数のデータそのものを
実際に処理を行う関数の引数にコピーします。
(転送するのです)
要はPCに同じ情報が2つあることになります。
ですが「このデータはここにあるよ!」という
情報を関数に渡して、関数内でそのデータを読みに
いく方法があるのです。これが参照渡し、すなわち
ポインタ(アドレス渡し)です。
これは関数内で、同じ場所のデータを変更する、
すなわち、呼び出し元の変数と共有しているデータ
を変更するため、あたかも引数に戻り値の機能が
あるように見えるのです。これが参照渡しの
からくりです。
よって、逆に値渡しだと、いくら関数の処理において
その引数に値を代入しても、コピーされた違う
場所のデータを書き換えることになるので
この関数を呼び出した元の引数のデータが変わることは
ありません。
(2)に続きます。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.