作者fumizuki (小獅)
看板Visual_Basic
標題Re: [請益] 應該是動態宣告的問題
時間Sat Apr 30 22:08:08 2005
動態陣列的宣告方式及注意事項
Dim a() As Integer
ReDim a(100) '0-100 共101個空間,初始值為零。
ReDim Preserve a(120) '0-120 共121個空間,前101個空間值不變,
'新增的20個空間初始值為零。
ReDim a(1, 2) '0-1,0-2 共2*3=6個空間,初始值為零。
ReDim Preserve a(1, 3) '0-1,0-3 共2*4=8個空間,原有的值不變,
'新加的2個空間初始值為零。
ReDim a(4, 5) '0-1,0-5 共2*6=12個空間,初始值為零。
注意事項:
1) Dim 宣告時,不可給定上下限,會無法使用 Redim Preserve,但仍可使用 ReDim。
2) ReDim 宣告過,原有內容不會保留,全部歸零,且不可改變資料型態。
3) ReDim Preserve 只可改變最後一維的上限,下限不可,之前的維數亦不可。
不可改變資料型態。
以下皆會發生錯誤:
ReDim Preserve a(5, 6) '改變第一維的上限,執行階段錯誤。
ReDim Preserve a(5, 5) '改變第一維的上限,執行階段錯誤。
ReDim Preserve a(4, 5) As String '改變資料型態,編譯錯誤。
ReDim a(4, 5) As String '改變資料型態,編譯錯誤。
ReDim Preserve a(4, 1 To 5) '改變下限,執行階段錯誤。
※ 引述《eagerbee (資訊不對稱)》之銘言:
: 在程式中
: 因為我不知道會出現多少個我要的東東
: 所以我也就不知要設計多少的位子才夠用
: 那麼有什麼方法可以解決嗎?
: ex:
: 有十個籃球員
: 有助攻數,得分數和籃板數
: 要比較之後
: 會知道有幾個人是不會被比下去(就是兩人相比三項中有一項不會輸給別人)
: 大概是這類的問題
: 所以會出現不知要預設多少的位子來放
: 有那位板友可以給個建議該如何做呢?
: 感謝看完~
--
VB 程式設計 倉木麻衣 PTT 星爺板 行列輸入法
======================================================
Visual_Basic MaiKuraki Stephen Array
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.58.156.43
1F:推 eagerbee:真是太謝謝你了~ 203.73.156.114 05/04