【規則】
1、string為普通類型,不是數組型,只是其內容為字串;
2、’a’和”a”的區別:’a’為字元,”a”為字串;單引號只能定義一個字元,雙引號可以定義多個字元,即字串。
3、指標可以通過加減、自加減改變其值,數組不可以。
4、以數組定義的字串可以修改其中的字元,以指標定義的字串不能修改其中的字元。
例如:
char a[]=”hello”; //數組定義的字串
cout<<a; //輸出 hello
cout<<*(a+1); //輸出 e,即數組a的第2個字元,即a[1]
cout<<a[1]; //輸出 e,即數組a的第2個字元,與上同
cout<<*a++; //錯誤,規則3,數組名是常量,不可以改變其值
cout<<*a; //輸出 h,即數組a的第一個字元
cout<<a; //輸出hello
*a=”L”; //錯誤,規則2,*a為字元,”L”為字串,不匹配
*a=’L’; //正確,規則4,將數組第一個字元修改為L
cout<<a; //輸出 Lello
a[2]=’6’; //正確,規則4,將數組第3個字元修改為’6’
cout<<a; //輸出 Le6lo
--------------------------------------------------------------------------
char *a="hello"; //指標定義的字串
cout<<a; //輸出 hello
cout<<*(a+1); //輸出 e,即字串a的第2個字元
cout<<a[1]; //輸出 e,即字串a的第2個字元,這裡也可以視為數組a
cout<<*a++; //輸出 h,,規則3,即先計算*a,再使a=a+1
cout<<*a; //輸出 e,因上一行中a已經自加1
cout<<a; //輸出 ello,因為指標a已經發生變化,指向了下一個地址,即指向以e開頭的字串
*a=’L’; //錯誤,規則4,不能修改指標定義的字串的字元。
//【注意】此處編譯可通過,運行時會出錯,提示“不能寫入”
a[2]=’6’; //錯誤,規則4,不能修改指標定義的字串的字元。