字元 字元陣列 char string的區別分析

2022-08-25 11:57:22 字數 2015 閱讀 2237

【規則】

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....