查看單個文章
舊 2007-12-08, 05:52 PM   #2 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9894小時 | 升級還需:102小時級別:97 | 在線時長:9894小時 | 升級還需:102小時級別:97 | 在線時長:9894小時 | 升級還需:102小時級別:97 | 在線時長:9894小時 | 升級還需:102小時級別:97 | 在線時長:9894小時 | 升級還需:102小時級別:97 | 在線時長:9894小時 | 升級還需:102小時級別:97 | 在線時長:9894小時 | 升級還需:102小時
註冊日期: 2002-12-07
文章: 13359
精華: 0
現金: 26484 金幣
資產: 3024394 金幣
預設

看你要複雜化 還是 簡單化
雖然你沒說是什麼語言
但應該是指 c/c++

指標是用來存放 記憶體位址 的變數
陣列是一 連續性的記憶體位址
再來是 編譯器
在設計時就已經做好了一堆規範(比如常用的ANSI)
所以 編譯器 懂得這一行這一句如何加工

而你指的 "複製" 與 "拿來使用"
就是程式語言裡指的
Call by value

Call by reference (又稱為call by address,或Call by location)
要講詳細不如自己看書
簡單講就是
Call by value 編譯器會把這一段做 複製的加工
(所謂 加工 就是雖然只是一句指令,其實會翻譯成一推的組合語言指令)
Call by reference 編譯器會把這一段做 記憶體位址的提供

當你提供了 陣列的開頭記憶體位址
不就可以
推算出整個陣列 (因為是連續的)
所以指標如果存放了
陣列的開頭記憶體位址
此時 指標 就相當於 整個陣列

此時 這個指標 就是這個記憶體變數(這個陣列)的別名
(別名: 可以比喻成藝人的藝名,本名與藝名 都是指這個人)

其實用講的不如用畫的
會比較易懂
要搞清楚
還是建議你看一本基本的
計算機概論
會比較好
mini 目前離線  
送花文章: 2016, 收花文章: 8010 篇, 收花: 26819 次
回覆時引用此帖
向 mini 送花的會員:
cara551977 (2008-01-03)
感謝您發表一篇好文章