C语言 字符数组不等于字符串

在c语言当中,字符串的定义是一个任意长度的字符数组,且其以\0为结尾

而字符数组是不需要以\0作为结束符号的

所以当以下列情况进行时,结果是不相同的

#include<stdio.h>
int main(){
    char a[]={'i','l','o','v','e','u'};
    char b[]="iloveu";
    printf("%s\n",a);
    printf("%s\n",b);
    puts(a);
    puts(b);
}

其运行结果必然是a数组乱码。

这个时候的解决办法就是补上结束符号\0或者将a这个数组定义为大于其定于的元素个数。

posted @ 2020-10-16 16:25  雾漫大武汉  阅读(738)  评论(0编辑  收藏  举报