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