字符类型char、字符串与字符数组、字符数组与数据数组区别
字符类型是以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; }