徹底搞定c語言指針詳解 C語言指針和數組結合起來該怎么學?
C語言指針和數組結合起來該怎么學?我用C語言開發十幾年了,經常看到一些新手對指針和數組很迷茫。排列首先是array,一個數組聲明后就有內存了,比如char a[10],那么數組A就有10個字節的內存。
C語言指針和數組結合起來該怎么學?
我用C語言開發十幾年了,經常看到一些新手對指針和數組很迷茫。
排列
首先是array,一個數組聲明后就有內存了,比如char a[10],那么數組A就有10個字節的內存。
所以可以帶下標使用,只要下標不超過10-1,就不會出錯。
針
如果你把數組想象成一串粘在一起的盒子,指針就是一個鉤子。鉤子被鉤住的時候只能用一塊內存。比如聲明一個指針p: char * p,這時可以 不要用它。只有在P掛接一塊內存后,也就是賦值后,才能使用。比如p a或者p ampa[0]。
注意
指針本身也有內存,比如int b,其中b取4個字節,那么char *p,p的類型是char *,所以p本身也取4個字節。也可以取它的地址,也就是二級指針:char **pp p。
數組本身也可以看作是指向一塊內存的指針,指針就是數組名。比如上面的一個。您可以將a分配給p: p a。更常見的情況是,當調用函數時。比如有一個排序函數:qsort(char *p,int n),需要一個數組和數組中的元素個數作為參數??梢赃@樣調用:qsort(a,10)。
歡迎討論關注我的頭條號。
c語言函數和指針哪個難?
C語言的指針比較難,因為指針操作內存,容易出現段錯誤。