※ 引述《deo2000 (800IM)》之銘言:
: nArrScore 是原始資料陣列
: 1.Sort nArrScore nArrScore被改變
: 2.Sort (nArrScore) nArrScore不改變
: 請問為什麼會這樣呢???
: --------------------------------------------
: Function Sort(ByRef p_nArr)
: Dim i, j As Integer
: Dim nTemp As Integer
: For i = 0 To 40 - 1
: For j = i To 40 - 1
: If p_nArr(i) < p_nArr(j) Then
: nTemp = p_nArr(i)
: p_nArr(i) = p_nArr(j)
: p_nArr(j) = nTemp
: End If
: Next j
: Next i
: End Function
: --------------------------------------------
Private Sub Form_Load()
Dim A As Long
MsgBox Hex(VarPtr(A))
Sort (A)
MsgBox A
Call Sort(A)
MsgBox A
End Sub
Sub Sort(ByRef p_nArr As Long)
MsgBox Hex(VarPtr(p_nArr))
p_nArr = 1
End Sub
你可以跑跑看,二次的差別,
雖然VB本身對語法要求不嚴謹,但如果你可以像寫C一樣嚴謹的要求
來要求自己寫VB,問題會少很多
Option Explicit <<一定要加
確實宣告變數形別,該Private Public 弄好
該用 Function OR SUB 就用什麼,有回傳值(),沒有不()
這些習慣建立後,會對往後寫程式幫助很大
--
████ █ ★ ████ █ █ █
█ █ █ █ █ █ 超 級 熱 烈 歡 迎
█ ████ █ █ █ ████ █
█ █ █ █ ███★ █ █ 歡迎到嘉義版!
★███ █ █ █ █ █ █ █
訊馳電腦-路徑 → 嘉義市林森西路496號 →(05)2244-526 → 順發斜對面
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.140.29