Pointer 比較適合的名字是指向(point)記憶體的位置。
像是一個銀行內有不同大小的保險箱,每一個保險箱都有自己的位置,讓大家可以快速的找到。
所以可以傳pointer到function裡,裡面存著memory address,就可以直接修改他所指向位置的值。
宣告指標的方式:
<variable_type> *<name>;
宣告一個int的指標變數來存放位址
int *BoxPosition;
宣告一個int來存值
int Box;
Box = 1234;
把Box的位址給BoxPosition(&是拿取位址)
BoxPosition = &Box;
再用*把位址所存的值給拿出來
printf("%d\n",*BoxPosition);
SourceCode
這是ptr指向一個int大小的memory address。
int *ptr = malloc( sizeof(int) );
那如果是sizeof(*ptr)呢?
int *ptr = malloc( sizeof(*ptr) );
因為ptr是指向一個int的memory address,而*ptr是一個int值,
所以用sizeof(*ptr)結果也是一樣會回傳一個int size。
最後記得釋放空間。
free(ptr)
Reference
沒有留言:
張貼留言