我知道 C 中的每个字符串都以 '\0' 字符结尾。当我们需要知道字符串何时结束时,它非常有用。但是,我无法理解它在打印字符串和没有它的情况下打印字符串的用途。我有以下代码: -
/* Printing out an array of characters */
#include<stdio.h>
#include<conio.h>
int main()
{
char a[7]={'h','e','l','l','o','!','\0'};
int i;
/* Loop where we do not care about the '\0' */
for(i=0;i<7;i++)
{
printf("%c",a[i]);
}
printf("\n");
/* Part which prints the entire character array as string */
printf("%s",a);
printf("\n");
/* Loop where we care about the '\0' */
for(i=0;i<7&&a[i]!='\0';i++)
{
printf("%c",a[i]);
}
}
输出是: -
hello!
hello!
hello!
我无法理解其中的区别。有什么解释吗?