字符类型char、字符串与字符数组、字符数组与数据数组区别

字符类型是以ASCII码值运算的:
小写字母比相应的大写字母大32,其中A=65,a=97
Esc键 27(十进制)、'\x1B'(十六进制)、'\33'(八进制)

转义字符:
\0 空字符
\n 换行
\r 回车
\t 水平制表符(Tab键)
\' 单引号
\" 双引号
\\ 反斜杠

char c='M'; //等效于ch=77;M的ASCII码值77,'\x4D'或'\115'

字符串与字符数组
字符串:以隐含的空字符\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;
}

猜你喜欢

转载自www.cnblogs.com/xixixing/p/10079840.html