1. 程式人生 > >C/C++ 單個字元與字串

C/C++ 單個字元與字串

在C/C++裡,單個字元和字串是有區別的,而這又取決於你使用的是單引號還是雙引號。表示式'A'代表一個單個字元。在編譯期間,c++將這個表示式替換為字元“A”的ACSII編碼,該編碼的十進位制值是65.

而“A”代表這一個長度為1的字串,C++編譯器會把以下兩個位元組放到資料區裡:

1.字母"A"的ASCII程式碼;

2.一個零值(字串結束標記)

C++編譯器隨後會把表示式“A”替換為這兩個位元組陣列的地址。'A'和"A "是不同的,前者將被轉換為一個整數值,後者被轉換為一個地址。

若有:

1.char s[]="A";

if(s[0]=='A')//正確

cout<<"..."<<endl;

2.

char s[]="A";

if(s[0]==’'A‘')//錯誤

cout<<"..."<<endl;

試圖用s的第一個元素和“A”的地址比較。

總結:單引號的表示式,在被轉換為ASCII編碼後將被視為一個數值;雙引號字串是char型別陣列,會被轉換為地址。如果字元個數多於1,只能是字串,為1時可以用單引號也可用雙引號,含義不一樣。