作者caeru (星羽)
看板Visual_Basic
標題[.NET] 陣列排序的問題
時間Thu Nov 26 20:10:48 2009
初學vb不久,有很多觀念不是很懂...
以下簡單敘述式:
================================
dim a() as integer = {4,2,3,1}
dim b(a.length-1) as integer
b = a
Array.sort(b)
================================
此時b()的確被排序為{1,2,3,4}
但是為何a()也變成{1,2,3,4}
不是很瞭解其中的原因...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.73.160
1F:→ Steven0422:指到相同記憶體位置吧 11/26 20:19
2F:→ caeru:請問應該如何指向不同記憶體位置? 11/26 20:22
3F:→ MOONRAKER:本來就是指向不同記憶體位置啊 你不能用這種偷懶的方法 11/26 20:29
4F:→ MOONRAKER:做陣列複製 你要用一個 i 從頭跑到尾 然後b(i)=a(i) 11/26 20:30
5F:→ caeru:感謝M大,因為以前學的程式並沒有這種觀念=w= 11/26 20:34
6F:→ caeru:剛剛查詢了一下,有Array.Copy的指令可以進行複製 11/26 20:36
7F:→ caeru:只是沒想到這樣直覺的寫法錯誤會如此的大Q_Q 11/26 20:36
8F:→ MOONRAKER:array.copy是.NET的。你標題選錯了。 11/27 00:05
※ 編輯: caeru 來自: 114.44.14.24 (11/27 17:18)
9F:→ caeru:已修正 11/27 17:19
10F:推 fumizuki:Array是參考,非實際變數,儲存的內容是記憶體位址 11/29 21:15
11F:→ fumizuki:所以直接使用指派的話,會存取相同的內容 11/29 21:16