【規則】
1
、string
為普通型別,不是陣列型,只是其內容為字串;
2
、』a』
和」a」
的區別:
』a』為字元,
」a」為字串;單引號只能定義乙個字元,雙引號可以定義多個字元,即字串。
3
、指標可以通過加減、自加減改變其值,陣列不可以。
4
、以陣列定義的字串可以修改其中的字元,以指標定義的字串不能修改其中的字元。
例如:char a=」hello」;
cout<
cout<<*(a+1); //輸出 e,即陣列a的第2個字元,即a[1]
cout<
cout<<*a++; //錯誤,規則3,陣列名是常量,不可以改變其值
cout<<*a; //輸出 h,即陣列a的第乙個字元
cout<
*a=」l」; //錯誤,規則2,*a為字元,」l」為字串,不匹配
*a=』l』; //正確,規則4,將陣列第乙個字元修改為l
cout<
a[2]=』6』; //正確,規則4,將陣列第3個字元修改為』6』
cout<
char *a="hello";
cout<
cout<<*(a+1); //輸出 e,即字串a的第2個字元
cout<
cout<<*a++; //輸出 h,,規則3,即先計算*a,再使a=a+1
cout<<*a; //輸出 e,因上一行中a已經自加1
cout<
*a=』l』; //錯誤,規則4,不能修改指標定義的字串的字元。
//【注意】此處編譯可通過,執行時會出錯,提示「不能寫入」
a[2]=』6』; //錯誤,規則4,不能修改指標定義的字串的字元。
string型(需要string標頭檔案)
char型(不需要string標頭檔案)
char a=』m』;
正確
char a=」m」;
錯誤
char *a=」m」;
正確
char a=」m」;
正確string a=」hello」;
正確char a=」hello」;
錯誤string *a=」hello」;
錯誤char *a=」hello」;
正確string a=」hello」;
錯誤char a=」hello」;
正確string *p=a;
錯誤char *p=a;
正確string *p=&a;
正確char *p=&a;
錯誤coutcoutcout<<*a;
錯誤cout<<*a;
a的首字元
cout<<&a;
a的位址
cout<<&a;
a的位址
字元,字元陣列,字元指標
一 字串變數與常量 例 char a abcdefg 這一段語句中,既有字串變數,也有字串常量。變數是陣列a,常量是 中的字面量字串 abcdefg 此時,可以訪問或修改a中任意乙個元素 但是,常量字串只能訪問,不能修改。這句留著下面有用 二 字元指標與字串常量 例 char p abcdefg 這...
字元指標 定長字元陣列 不定長字元陣列 字元的區別
先來點基礎知識 printf中分別代表的輸出型別 c 字元 d 有符號十進位制整數 f 浮點數 包括float和doulbe e e 浮點數指數輸出 e e 記數法 g g 浮點數不顯無意義的零 0 i 有符號十進位制整數 與 d相同 u 無符號十進位制整數 o 八進位制整數 e.g.0123 x ...
字串 字元陣列 字串陣列 字元陣列的相互轉換
1 字串 字元陣列的相互轉換 string strstringtype my string 建立乙個字串 charchrchararray 建立乙個字元陣列 chrchararray strstringtype.tochararray 將字串轉換為字元陣列 strstringtype string....