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]的区别的主要内容,如果未能解决你的问题,请参考以下文章

c语言中 char a; 请问 a与’a’有什么区别 ’a’是a的ascll码?是个数字?

char *a 与char a[] 的区别

char *a 与char a[] 的区别

数组和指针的区别

char * 与char []区别总结

C中char []和char *之间的区别[重复]