字符類型是以ASCII碼值運算的:
小寫字母比相應的大寫字母大32,其中A=65,a=97
Esc鍵 27(十進制)、'\x1B'(十六進制)、'\33'(八進制)
轉義字符:
\0 空字符 ASCII碼值 0
\n 換行
\r 回車
\t 水平制表符(Tab鍵)
\' 單引號
\" 雙引號
\\ 反斜杠
注意:英文字符用單引號,中文字符用雙引號(2個字節/中文字符,以字符串方式存儲)
#include<iostream> using namespace std; int main() { char c = 'M'; //等效於ch=77;M的ASCII碼值77,'\x4D'或'\115' char b[] = "你";//2+1=3個字節 char str[] = { '1','m',"嗨" };//1+1+(2+1)=5個字節 cout << str[2]<<str[3];//中文字符,2個字節,都輸出才輸出“嗨” return 0; }
字符串與字符數組
字符串:以隱含的空字符\0結束,占用字節數+1,注意:1字節/字母,2字節/漢字
字符數組:不包含空字符,占用字節數不需+1
char ch[6]= "China"; //6字節,ch[5]是\0 char ch[5]={'C','h','i','n','a'}; //5字節 char str[3][5] = { "Tom","John","Mary" };//3×5=15字節。定義變量就是划定內存
字符數組與數據數組區別:
字符數組輸入\輸出時,不需要循環遍歷,cout對字符型指針變量做了特殊處理,具體如下
#include<iostream> using namespace std; int main() { char str[4] ="Tom";//3+1=4字節 char *p = str; //指向首地址 cout<<p<<endl; //Tom,全部輸出,從首地址到最后的值。 cout << p + 1 << endl;//om,從第二個地址到最后的值。 cout << p[0]<<endl; //T,等效於*p cout << (int *)p << endl; //顯示首地址 return 0; }