史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2007-12-07, 09:17 PM   #1
a19870504
註冊會員
榮譽勳章

勳章總數
UID - 283728
在線等級: 級別:2 | 在線時長:15小時 | 升級還需:6小時級別:2 | 在線時長:15小時 | 升級還需:6小時
註冊日期: 2007-10-25
文章: 34
精華: 0
現金: 56 金幣
資產: 56 金幣
預設 疑問 - 矩陣引入函數時跟指標的差別??

小弟有上知識小爬了一下文 是了解了指標他最大的功用在哪裡...

但是我一直想不透的是系統的運作...

普通的陣列引入函數時 為什麼會是把整個陣列的值都複製進去??

那用陣列指標引入函數 只是引入第一個陣列的位址 為什麼整個陣列的值都可以運用??

這是小弟的想法 但不知道答案是不是這樣?? 想要確認一下

因為記憶體記憶資料是線性的方式記憶

所以當沒有定義指標的矩陣引入函數時 代表是將整個陣列的資料都要引入進去

所以才需要複製整個陣列進去,也才可以運用陣列的資料?系統也才知道陣列裡其他資料所指的位址

當據有指標的陣列引入時 引入的是第一個陣列的位址 因為記憶資料是線性方式記憶

所以引入第一個位址之後的陣列範圍內都一定是陣列的資料 所以不比整個陣列都複製到函數內

只要函數裡的程式有需要在依照第一個位址開始找尋其他資料的位址 所以不用整個複製進去

請問是這樣嗎?? 有錯請大力的糾正我吧 指標真是很抽象的東西.......

當指標+陣列+函數 天阿 天昏地暗
a19870504 目前離線  
送花文章: 0, 收花文章: 6 篇, 收花: 14 次
回覆時引用此帖
舊 2007-12-08, 05:52 PM   #2 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時
註冊日期: 2002-12-07
文章: 13249
精華: 0
現金: 26241 金幣
資產: 3024051 金幣
預設

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

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

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

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

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

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

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



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 02:44 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1