1.字符數(shù)組
定義一個字符數(shù)組時,您必須讓編譯器知道它需要多大空間。
如:
const char msg[40] = "show me the money!";
const表明這個字符串不可以在程序中改變。
這種初始化和下面所示的標準數(shù)組初始化相比是很簡短的:
const char msg[] = {'s', 'h', 'o', 'w', ' ',
'm', 'e', ' ', 't', 'h',
'e', 'm', 'o', 'n', 'e',
'y', '\0'
};
注意標志結束的空字符。如果沒有它,得到的就只是一個字符數(shù)組而不是一個字符串。
另外,指定數(shù)組大小時,一定要確保數(shù)組元素個數(shù)比字符串的長度至少多1(多出來的1個元素用來存放空字符)。
未被使用的元素均被自動初始化為\0。這里因為是字符數(shù)組,所以初始化為char形式的空字符,而不是數(shù)字字符0。
如果在進行初始化聲明時省略了數(shù)組大小,則該大小由編譯器來決定。
但是請注意,如果并非在初始化時就進行聲明,則必須為數(shù)組明確的分配大小。
#define LINELEN 81 //最大字符串長度 + 1
……
char name[LINELEN];
聲明一個數(shù)組時,數(shù)組的大小必須為整型常量,而不是在運行時得到的變量值。
和任何數(shù)組名一樣,字符數(shù)組名也是數(shù)組首元素的地址。應此下面的式子對數(shù)組msg成立。
msg == &msg[0]
*msg == 's'
*(msg + 1) == msg[1] == 'h'