请问函数调用如何传递数组
如下C程序,VB如何实现
void Test(unsigned char *p){
MessageBox(p);
}
void Display(void){
unsigned char s[20];
strcpy((char *)s,"832476825");
Test(s);
}
问题点数:0、回复次数:6Top
1 楼MSTOP(陈建华)回复于 2004-05-04 11:48:49 得分 0
function test(byref chararr() as string)
msgbox join(chararr)
end function
function display()
dim i as long
dim str as string
s(19) as string
str="832476825"
for i=0 to len(str)
if i<=19 then
s(i)=mid$(str,i,1)
end if
next
call test(s)
end functionTop
2 楼yenight(抵制日货 利国利民 能不买日货,尽量不买)回复于 2004-05-04 12:23:19 得分 0
我记得C中传数组就是把数组名(或数组第一个无素)和数组元数传给函数就OKTop
3 楼kissoflife(明月高楼休独倚,酒入愁肠,化作相思泪!)回复于 2004-05-04 13:00:11 得分 0
Function test(ByRef chararr() As String)
MsgBox Join(chararr)
End Function
Function display()
Dim i As Long
Dim str As String
Dim s(19) As String
str = "832476825"
For i = 1 To Len(str)
s(i) = Mid(str, i, 1)
Next
Call test(s)
End FunctionTop
4 楼kmzs(.:RNPA:.山水岿濛)回复于 2004-05-04 19:48:18 得分 0
恩Top
5 楼cyuan5(cy5)回复于 2004-05-05 09:33:45 得分 0
以上的朋友只是将数据强制转换为字符串,但我真正用的是传递通讯数据(不好意思无写清楚)例子如下:
void Test(unsigned char *p,int Len){
while(len--){
串口=*p; //将数据发送到串口
p++;
}
}
void Display(void){
unsigned char s[25]={1,2,3,137,5,6,7,8,9,0,
1,2,3,21,4,12,45,56,56,245,
89,167,191,161,12
};
Test(s,20);
}Top
6 楼innercool(内酷)回复于 2004-05-07 09:06:43 得分 0
Private Sub Form_Load()
Dim arr(10) As Byte
Dim i As Integer
For i = 1 To 10
arr(i) = i
Next
i = aa(arr())
Debug.Print i
End Sub
Private Function aa(ar() As Byte) As Byte
Debug.Print ar(3)
aa = 5
End Function
输出
3
5
Top




