如何存儲一組字符串,二維字符數組是一個可行的方法,但是該方法有一個致命問題,二維數組的列數是需要明確給出的,每一行的列數相同,然而字符串有長有短,這樣勢必造成較大的空間浪費,若是需要交換字符串順序,則更是有很大的計算代價。
用指針數組則可以較好規避上面的問題,將指針數組中每個元素賦值為一個字符串的首地址,就完成了一組字符串的表示,那么具體有哪些優點呢?
1)各字符串在數組內的位置調整將更加方便。這時只需要改變數組內各指針的指向,而無需實際調整字符串在內存中的存放位置。
2)相對於二維數組來說,這樣的組織方式允許不等長的字符串能夠以一種相對規整的方式組織在一起,看上去的效果就好像數組中的每個元素就是一個字符串一樣,盡管每個元素只是指向某字符串的指針。
3)指向字符串的指針數組的初始化更簡單,各個字符串都是可以分別定義的,只要讓數組中的指針指向各字符串即可。
舉例說明,指針數組如下:
char *name[] = {"allen", "word", "jones", "martin", "blane", "clark"}