word; color: rgb(24, 30, 51); background-color: rgb(255, 255, 255);">字符數(shù)組的定義和初始化
word; clear: both; text-indent: 28px; color: rgb(24, 30, 51); font-family: PingFangSC, 微軟雅黑, 黑體, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">字符數(shù)組的定義和一般的數(shù)組一樣,例如:
char s[10];
char s[3][10];
初始化的方法如下:
char s[10]={‘H’,’e’,’l’,’l’,’o’,’‘,’C’,’+’,’+’,’!’};/*定義時(shí)完全初始化*/
char s[]={‘H’,’e’,’l’,’l’,’o’,’‘,’C’,’+’,’+’,’!’};/*定義時(shí)省略長(zhǎng)度的完全初始化*/
char s[10]={‘H’,’e’,’l’,’l’,’o’};/*不完全初始化,未賦值的元素系統(tǒng)自動(dòng)賦予0值*/
char s[11]={“Hello C++!”); /*字符串形式的初始化*/
char s[11]=”HelloC++!”; /*省略花括號(hào)的字符串形式的初始化*/
用雙引號(hào)進(jìn)行的字符串形式初始化和普通字符數(shù)組不同的是,在串的尾部自動(dòng)添加了一個(gè)結(jié)束符’\0’,其ASCII值為0。數(shù)組的長(zhǎng)度為ll,如果為10,’\0’將不能存儲(chǔ),字符串將不能正確初始化,其結(jié)果將只是一個(gè)普通的字符數(shù)組。
以下形式也可以初始化一個(gè)字符串:
char s[11]={‘H’,’e’,’l’,’l’,’o’,’‘,’C’,’+’,’+’,’!’,’\0’};
有了結(jié)束符’\0’,在編譯處理和對(duì)字符串操作的時(shí)候,可以以此作為串是否結(jié)束的標(biāo)志,定義字符串的時(shí)候需要足夠的空間能存儲(chǔ)最后一個(gè)結(jié)束符,像以下定義則是錯(cuò)誤的:
char s[10]=”Hello C++!”;
字符串的長(zhǎng)度是不包含’\0’在內(nèi)的有效字符個(gè)數(shù),如果字符串包含多個(gè)’\0’,以最前面的為有效結(jié)束符。例如,假設(shè)有字符串:
char s[11]={‘H’,’e’,’l’,’l’,’o’,’\0‘,’C’,’+’,’+’,’!’,’\0’};
則字符串的有效長(zhǎng)度為5,字符數(shù)組的長(zhǎng)度仍然為11。
因此用字符串的方式對(duì)數(shù)組作初始化賦值,\0'是由C編譯系統(tǒng)自動(dòng)加上的。由于采用了’\0'標(biāo)志,所以在用字符串賦初值時(shí)一般無(wú)須指定數(shù)組的長(zhǎng)度,而由系統(tǒng)自行處理。
例如:
char s[ ]=”Hello C++!”;
字符數(shù)組和普通數(shù)組一樣,也是通過下標(biāo)引用。