字符串
由双引号("")引起来的一串字符(字母和符号)成为字符串如"hello world\n"
而\0这个转义字符做为字符串的结束标志,不算做字符串的内容
下面将几行代码来打印字符串的内容进而来解释转义字符\0的作用
#include <stdio.h>
int mian()
{
char arr1[] = "abc";
char arr2[] = {'a','b','c'};
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
下面是代码的输出结果
可以看到字符串的输出结果是abc ,而下面数组输出的内容就是abc后面就是乱码,这是因为字符串本身带有\0这样的结束标志,但是\0又不作为字符串里面的内容。而且下面数组里面的三个字符abc后面并没有\0解释标志,所以会出现这种乱码现象。
下来把\0加进去看看结果
#include <stdio.h>
int mian()
{
char arr1[] = "abc";
char arr2[] = {'a','b','c','\0'};
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
同样的我们也可以用计算字符串的长度代码来显示\0的作用
#include <stdio.h>
#include <string.h>
int mian()
{
char arr1[] = "abc";
char arr2[] = {'a','b','c'};
printf("%d\n",strlen(arr1));//strlen是计算字符串长度的函数,引用与头文件string之中
printf("%d\n",strlen(arr2));
return 0;
}
同样的我们看到一个是3而一个是42为啥同样都是abc而结果却不一样
这是因为字符串里面有\0结束标志,而数组里面没有,所以计算机只能继续寻找下去,直到找到结束标志,所以如果没有结束标志,那么计算的长度就是随机的
然后我们把结束表示\0就入进去就正常了。
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[] = "abc";
char arr2[] = {'a','b','c','\0'};
printf("%d\n",strlen(arr1));//strlen是计算字符串长度的函数,引用与头文件string之中
printf("%d\n",strlen(arr2));
return 0;
}
转义字符
转义字符就是原来字符的意思加上斜杠\,转变了原来的意思。如\0
转义字符中的一道笔试题
#include <stdio.h>
#include <string.h>
int main()
{
printf("长度=%d\n",strlen("c:\test\628\test.c"));
// \62是一个转义字符 \t也是一个转义字符
return 0;
}
结果如下
注释
添加注释可以理解比较难懂的代码,注释符号//