字符数组和结束符/0之间的关系
最近在字符数组的运用上撞头(包括字符数组的声名,初始化和/0的添加)/0是字符数组的结束标志第一种:
#include<stdio.h>
int main(void)
{
int a;
char s[6]={'h','e','l','l','o'};/*斜杆0“/0”在这里有什么用,需不需要添加?系统会自动添加的对吗?这里是给单个数组元素赋值对吗?*/
for(a=0;a<=5;a++)
printf("%d",a);
for(a=0;a<=5;a++)
printf("%c",s[a]);
return 0;
}
第二种:
#include<stdio.h>
int main(void)
{
int a;
char s[6]={"hello"};/*这里的{"hello"}和上面的]{'h','e','l','l','o'}是同一种初始化方法吗?为什么可以简写成这样?/0(斜杆零)要不要加,还是系统会自动加?{'h','e','l','l','o'}为什么可以写成{"hello"}?这里是给数组s[6]赋值字符串对吗?*/
for(a=0;a<=5;a++)
printf("%d",a);
for(a=0;a<=5;a++)
printf("%c",s[a]);
return 0;
}
第三种:
#include<stdio.h>
int main(void)
{
int a;
char s[6]="hello";/*和上面两个初始化都不同,为什么可以简写成这样?/0在这里有什么用?系统一遇到/0就会自动结束对吗?*/
for(a=0;a<=5;a++)
printf("%d",a);
for(a=0;a<=5;a++)
printf("%c",s[a]);
return 0;
}
请大家说说字符数组和字符串的区别,以及他们的定义,概念,意义,性质,初始化和赋值。
我实在不会,谢谢大家了!