1樓:匿名使用者
vb規定,dim 陣列必須要求常數表示式,否則會出錯。
但此問題可以這樣解決:
dim m1 as integer, m2 as integerdim a() as integer
dim b() as integer
dim c() as integer
m1 = 2 '這裡可以改為m1,m2從資料庫中讀取的數值m2 = 2 '同上
redim a(m2, m1) as integerredim b(1, m1) as integerredim c(m2, 1) as integer經過這樣處理,就不會出錯了。
2樓:匿名使用者
dim a(m2, m1) as integer必須是數值啊
dim a(100, 100) as integer像這樣、動態的二維陣列的話:
option explicit
private m_a() as byteprivate sub form_load()redim m_a(1 to 1, 2 to 2)debug.print ubound(m_a, 1), ubound(m_a, 2)
end sub
程式已經很明顯了。
1.你先定義一個1維動態陣列。
2.然後在過程或者其他事件裡重新定義陣列的維數!
dim m() as integer
這裡比方說:
m1=10
m2=10
redmim (m1,m2) as integer會在debug視窗輸出 1,2
3樓:匿名使用者
dim a(m2, m1) as integer
dim b(1, m1) as integer
dim c(m2, 1) as integer 這些陣列裡面的引數一定要常數或者常量,而你上面宣告的m1,m2都是變數,當然有錯了。
4樓:
dim是在程式執行之前就在記憶體中申請空間,所以括號裡的值必須是定值,也就是常數,你可以用redim。
先定義dim a() as integer, b() as integer, c() as integer
然後在讀出m1和m2後再用
redim a(m2,m1)
redim b(1,m1)
redim c(m2,1)
就達到你的目的了。
5樓:焉陽波鬱曠
'二維陣列10*10的integer型別
dim num(10,10) as integer 'vb6.0 從1-10為10個元素 *10元素
num(1,1)=5
mum(1,2)=8
'從1開始依此類推到10
num(2,1)=6
num(2,2)=4
'從1開始依此類推到10
'以上二維陣列相當於:
'10行*10例的**如下圖!
關於C語言二維陣列的問題,關於c語言二維陣列的問題
include void main for i 0 i 3 i for i 0 i 3 i for j 0 j 7 2 j printf change after n for i 0 i 3 i 1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 217...
c語言輸入整型二維陣列a,計算該二維陣列中的最
include void main int a 3 4 max,maxi 0,maxj 0,i,j printf 請輸入 n for i 0 i 3 i for j 0 j 4 j scanf d a i j max a 0 0 for i 0 i 3 i for j 0 j 4 j if max中...
為什麼二維陣列a和a,為什麼二維陣列a i 和 a i 相等
在記憶體中二復維陣列 是一行制一行儲存的,即本例中4個4個的儲存。那麼陣列的開頭,即可以是陣列第一個元素的位置,可以是陣列的首地址,也可以是第一行的首地址。如圖 即a 0 0 是二維陣列的第一個元素,也是第 0 行的第一個元素,他們的位置是一樣的所以地址也必然是相同的。a a 0 a 0 a 0 0...