預習C語言字串語法的一點點總結:
c語言字串的兩種形式及其初始化
·字符陣列(定義時就初始化是個好習慣,否則可能會有bug的驚喜)
第一種初始化 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),就必須事先為它分配空間啦,
注:如果你并不知道你需要讀取的字串是多大,并且似乎并沒有太多的存取操作,貌似事先分配一個很大或者很小的陣列都不妥當,那您不妨使用字符指標啦,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/146825.html
標籤:其他
