|
Advance Member
|
好久不見啦~
1.陣列的長度 / 個別元素的長度,不就是陣列的元素的個數了嗎?
2. "指標陣列和一般的字元陣列相比,占用的記憶體會比較小"...我猜你大概是指「字串(char *)為什麼比字元陣列節省記憶體」吧(不是指標陣列)?!
如果要處理的字串長度變化大時(例如每個人的通訊地址),若是使用字元陣列,你必需要宣告一個「足夠大」的陣列,以應付各種可能(也許有人連太陽系地球都寫進去),那麼不但這個長度不好拿捏,且若是填入的字串很短,那麼豈不浪費剩餘的空間?簡單地說,就是「彈性差」,但是「效率高」,因為它在編譯期就知道要配置多大的記憶體空間了(好比你出去玩之前就先跟飯店訂好房間,那麼你一到目的地後就可以馬上下榻;若是你到了飯店再問有沒有空房,櫃臺再去查電腦,然後再告訴你房間號碼,這樣自然是比較慢的了)!
反之,若是使用字串,那就會在程式被執行時才去尋找一個可用的、連續的記憶體空間來放置這個字串,所以它的「彈性高」,但「效率差」(就好比你出發去玩之前不先找飯店訂房間,到了目的地之後再去找;這間飯店沒有房了再找另一間,直到找到為止)!這裡的彈性,指的就是「浪費記憶體的程度」囉!
|