C語言筆記-指標(1)
指標最容易搞混的就是:
- int array[]
- int *ptr_array
這兩種之間的差別
- int array[10]:程式會做出已下的行為
- 在棧上分配一個可以容納10個整數的空間
- 把array當成一個指標
- 將指標與分配好的位址綁定
這個空間是由系統自動分配出來的,所以不能改變其大小,如果拖離範圍後被釋放了,依然可以再拿回這個空間。
但array這個指標不能指向其他地方,因為它與分配好的位址是綁定的。
- int *ptr_array:
程式指會做一件事,就是將array聲明為一個指標
這個指標沒有綁定任何位址,可以重心只想任何地方,以下都是合法使用:
ptr_array=malloc(sizeof(int)*10);
or
ptr_array=array;
所以 int array[]和int *ptr_array 是不一樣的,已前看過幾本書都是把它們話上等號
不過在函示傳遞就沒有什麼區別了:
int fun(int *ptr_array,int array[]);
本質上他們做的事情都是一樣的
此文章內容參考"21 century c"一書,在此做筆記
如須刪除請告知 謝謝
如須刪除請告知 謝謝