字符串和\0
使用双引号括起来的一串数字就被称为字符串
如"abcdef"就是字符串.
字符串的打印格式可以使用%s
来指定
int main()
{
printf("hehe");
printf("%s", "hehe");
return 0;
}
C语言字符串的中一个重要知识,就是在字符串的末尾隐藏一个\0
字符,这个\0
字符就是字符串的结束标志.
对于字符串"abcdef",我的可以看的6个字符:a,b,c,d,e,f.但是实际上末尾隐藏一个\0
的转义字符.
\0
是字符串就是的标志.我们在使用库函数printf()
打印字符躲着strlen()
计算字符串长度就是碰到\0
就停止了
下面举例一段代码
int main()
{
char arr1[] = { 'a','b','c' }; //放三个字符
char arr2[] = "abc"; //放一段字符串
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
运行结果:
调试监控arr1
和arr2
arr1
字符数组在打印的时候,打印a,b,c后打印了其他随机值,这是因为arr
在末尾没有\0
字符作为结束标志,在打印时没停止.在内存中,打印c
结束后打印其他值,直到碰到\0
才停止
arr2
打印正常.
int main()
{
char arr1[] = { 'a','b','c' }; //放三个字符
char arr2[] = "abc"; //放一段字符串
char arr3[] = { 'a','b','c','\0' };
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}
可见\0
的作用和重要性