char *a与char a[n]的区别

char *a='ab';//a[2]一定为'\0',但是,a[5]这样的指针越界不会报错

char a[3] = {'a','a','a'};//a[3]属于越界,会报错

char b[5]={'b','b'};//系统会自动将没定义的字符定义为'\0',即此字符串为{'b','b','\0','\0','\0'}

int j,q;

j = strlen(b);//值为1

q = strlen(b);//值不一定为3,strlen的机制是直到检测到'\0'为止

char c[3] = {'c','c','\o'};

strcat(b,c);//没问题

strcat(b,a);//报错,strcat的机制是把a中的字符添加到b字符串后面,直到检测到a中的'\o'停止添加。

上一篇:跨域(六)——window.name


下一篇:基于Docker搭建大数据集群(六)Hive搭建