第一種初始化 char ch[6]={'h','e','l','l','o'} ,也可以寫成char ch[]={'h','e','l','l','o'} ,最後一個位置預設儲存0即'\0',用作判定字串結束,這個很細節,需要注意
第二種初始化 char ch[6]="hello";這種寫法是不是很舒服,有點string型別的味道了,實際上與第一種是一樣的。
第三種初始化 char ch[6]="";程式會為首地址為ch的字串分配6個空間,但是記憶體中都是空('\0'),同上,實際上使用者只有5個空間,最後一位必須是'\0'
第四種初始化 char ch[6]={0};第一個字元賦值為空,以後的每個字元賦值為空,與第三種初始化類似。
錯誤操作示範:char ch[6]="12345";
char a[6];
ch=a;//陣列首地址是常數,不可被更改賦值,建議使用指標
注:字元陣列的讀取與修改具有天然優勢,大部分情況下還是建議使用字元陣列啦。
第一種:char *ch;直接定義,不去賦值也沒事,不像陣列定義的時候一定要分配空間。
第二種:char *ch=NULL;如果有強迫症,非要賦值的話,可以這麼幹,或者char *ch="1233453";
第三種: char b[6]="hello";
char *ch;
ch=b;
將b字串首地址賦值給ch,也很簡單。
第四種:char *ch=(char *)malloc(sizeof(char)*6);//分配6個字元空間的地址,首地址賦值給ch。有點字元陣列的味道了。這種初始化看似很雞肋,但是如果你想使用gets(ch),就必須事先為它分配空間啦。
注:如果你並不知道你需要讀取的字串是多大,並且似乎並沒有太多的存取操作,貌似事先分配一個很大或者很小的陣列都不妥當,那您不妨使用字元指標啦。