C语言关于字符数组接收字符串解析
前言:在一道算法题中遇到了一个让我很诧异的问题,strlen为什么得不到正确的长度。答案是我对字符数组进行的是赋值操作,不会自动补‘/0’。
本文从三个角度分析问题,声明,初始化,赋值,也不是彻底的深入,但是对于使用是没有问题了
首先是声明
char a[10];
此时数组中没有初值,(int)a[i]的值为随机数(其实也不然,测试得如果输出结果随数组大小变化而变化),输出为无规律整数
其次是初始化,部分初始化后面部分自动补齐’/0’
char a[10]={'1','2'}
此时a[3]到a[9]皆为 ‘/0’
最后是赋值
char a[10];
a[0] = '1';
a[1]='2';
//还有这种
char b[]={'c','v'}
此时a[3]到a[9]强转输出为无规律整数