プロが教えるわが家の防犯対策術!

VB6で引数に配列を渡す方法が2通りあるよう?ですが以下のような配列があり、渡し方によって引数の定義の仕方が異なると思うのですが、(2)番目の関数の書き方が知りたいです。

dim ary_dat(10) as integer

(1)test_A( ary_dat ) は、sub test_A( byref ary() as integer)という関数を作れば動作することはわかりましたが、

(2)test_B( ary_dat(0) ) は、関すでどのような引数を定義すればできるのでしょうか?

A 回答 (1件)

(2)は引数に配列のひとつの値を渡すという意味でしょうか?



Sub Main
dim ary_dat(10) as integer
Call test_B(ary_dat(0))
End Sub

Private Sub test_B(int_dat as Integer)
End Sub

おっしゃる意味が違っていたらごめんなさい。

この回答への補足

>(2)は引数に配列のひとつの値を渡すという意味でしょうか?

渡すときは先頭の1つを指定して、使うときには(関数側では)配列全部を利用します。

以前、他の方が書いたソースで、配列を渡すのではなくて、配列の先頭を渡して動作させていたものがあり、VBがどういう仕組み(関数側)で動作しているか知りたかったので質問しました。

C言語なら &ant_dat[0]に近い意味で、C言語の場合は、関数は func(*ary_dat)という形をとれば(1)(2)ともに動作しますが、VBの場合は
func(byref ary_dat())という関数で定義した場合は引数は ary_dat()としないといけないのですが、その人は呼び出し側で ary_dat(0)でそれを実現していた為、不思議に思いました。

補足日時:2007/02/03 17:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!