茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1676173 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
FF18_Paintcar_00053.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2008/3/19 7:46:48
相信有在玩C的人 , 對陣列和指標都是又愛又恨吧 ?
畢竟C最大的一郭特性 , 就是對記憶體的控管能力
可是C本身又不去幫你檢查 , 這時候一些怪怪的狀況就常發生在你的程式裡了
冷日在這裡先稍為解釋一下 , C裡面對記憶體控制的兩鍋大將 , 陣列和指標

1.陣列的特性是一定會是一郭"連續"的記憶體區段
指標則不一定 , 基本上指標可以被認作是某一種基本型態的變數 , 所以他的記憶體配置原則和一般變數沒有不同

2.陣列的內容存的是變數內容 , 換言之 , 你宣告哪一種資料型態的陣列 , 陣列裡存的就是那一種型態的變數
指標則不一樣 , 指標本身就是一種變數型態 , 只是C在看到指標形態時 , 不會用一般資料型態去解讀 , 而是會去讀它裡面的位址 , 然後再透過這位址找到你要找的變數

3.陣列在初始宣告時 , 就一定要決定大小 , 雖然C不會幫你決定陣列的終點位置 , 但是你必須要再一開始宣告時就決定其長度
冷日相信指標的目的之ㄧ就是要突破這鍋限制 , 因為它只是一郭存取位置的變數 , 所以個數不被限制 , 不過控管就更難了!

4.陣列是透過"佇標"來控制位置 , 提供你讀取或是修改的能力
而我們也可以把它視為一種指標的"具體化" , 怎麼說呢 , 當陣列名稱單獨被使用時 , 他所代表的就是"陣列的起始位置" , 此時我們可以利用"加上"SIZEOF(你宣告的變數型態)來跳到你要到的那一郭位置 , 此處的SIZEOF就跟佇標示一樣意思了啦!

5.雖然剛剛有提到陣列的名稱單獨使用會被解譯成為陣列起始位置 , 但是陣列並不像指標可以改變其內容直 , 換言之 , 陣列變數在宣告後 , COMPILE完成時 , 他的位置就被決定了 , 我們沒有辦法更改他
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|