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