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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.