剛開始看java。
我記得在 c裡是連續。
之前看同學有一本java 資料結構的書寫算位置的公式是連續的?
就是那個等差公式。所以,我以為如此。
後來看到同學寫矩陣運算的公式,說是二維要access兩次,所以要寫成一維;
不過根据公式,不是只有一次嗎?而且 int[][] x = new int[2][4] 感覺就只有
return 一個pointer。現在才知memeory allocation在java不是連續。
thanks
--
問我同學? 他在巨匠花了快20萬,結果...一問三不知。
二維要寫成一維是某個老師為了要教他寫程式給他的homework
※ 引述《FHTsai (無法理解的愛)》之銘言:
: ※ 引述《jtmh ()》之銘言:
: : Java 中的二維陣列都是「陣列的陣列」,
: : 也就是第二種寫法的形式,
: : 而且第一種寫法在行為上其實也等效於第二種 [註],
: : 也因為這樣,
: : 二維陣列的記憶體並不會是全部連續的。
: : 註:詳見 JLS 說明 - http://tinyurl.com/l8p8k8
: 的確,本質上二維陣列是一維陣列物件的集合,而既然是物件的集合,
: 便沒辦法保證在記憶體中是連續的排在一起...
: 只能說,這些一維陣列的參照是連續的放在記憶體中罷了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.203.67