查看單個文章
  #4  
舊 2014-06-10, 06:13 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 23,053
預設

似乎有點搞懂了,試說理解如下:
int *x,
char *y;
float *z;

它們所代表的意義就是,編譯器在看到 int *x之後會知道這是一個「指向」一個占有四位元的整數的指標,之所以要讓編譯器知道占幾位元是因為,假設*p指向第一個位址是001234(我這裡的位址是隨便說的,先當成是十位數的好了。),那麼一直到001237的記憶體中的內容就是應該存取的內容。
如果是char *y,那麼編譯器就會從y指到的第一個位址,假設是001000,再加一個位元001001,這裡面的內容是該變數的內容。

這就是為什麼使用指標時,前面也得先定個型別(型態),那是因為指標事實上都只指到第一個位址,後面要取多少憶體的內容得靠前面的型別宣告來確定。

是這樣嗎?


但純以 int *x來說,請問x本身有沒有用到記憶體?如果有用到,是配多少給它?據我google的初步結果,指標占的大小是一樣的,但和作業系統是32 or 64 bits有關。

thanks
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章