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

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_0043.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

屹立不倒的C : [發問]請問各位大大 ARRAY和POINTER(黑輪灌水)

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[發問]請問各位大大 ARRAY和POINTER(黑輪灌水)
請問各位大大
小弟最近再寫程式中用到POINTER
想問一下大家POINTER與ARRAY
的差異
我到現在還不能很明確的指出所有的差異點
煩請各位大大 多多指教 謝謝!!
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[原創]冷日淺談陣列與指標之差異
相信有在玩C的人 , 對陣列和指標都是又愛又恨吧 ?
畢竟C最大的一郭特性 , 就是對記憶體的控管能力
可是C本身又不去幫你檢查 , 這時候一些怪怪的狀況就常發生在你的程式裡了
冷日在這裡先稍為解釋一下 , C裡面對記憶體控制的兩鍋大將 , 陣列和指標

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

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

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

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

5.雖然剛剛有提到陣列的名稱單獨使用會被解譯成為陣列起始位置 , 但是陣列並不像指標可以改變其內容直 , 換言之 , 陣列變數在宣告後 , COMPILE完成時 , 他的位置就被決定了 , 我們沒有辦法更改他
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[回覆][技術]請問各位大大 ARRAY和POINTER(黑輪灌水)
恩恩 !!
謝嚕一唐 我要的就是這個'sizeof'
下一個主題 | 頁首 | | |



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