char *a与char a[n]的区别
Posted 扫驴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘停止添加。
以上是关于char *a与char a[n]的区别的主要内容,如果未能解决你的问题,请参考以下文章