在C中,我们会遇见这几种情况'\0','0',0,NULL,NUL
正确的区分它们才不会让我们犯一些小错误。
'\0'是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间
#include<stdio.h>
int main()
{
char arr1[] = {'h','e','l','l','o'};
char arr2[] = "hello";
printf("%s\n",arr1);
printf("%s\n",arr2);
return 0;
}
在上面的程序中arr1有五个元素,没有‘\0’;arr2中有六个元素,而且有‘\0’;所以两个输出语句中第一个输出的是hello和一堆乱码,因为编译器想找到‘\0’,结束程序,所以会有一堆乱码;而第二个输出的是hello.
‘0’这是一个字符零,他的ASCII码是48;假如要写一个程序,要求他可以实现字符3到数字3的转换;
#include<stdio.h>int main()
{
char a = '3';
char b = '0';
printf("3--%d",(a-b));
return 0;
}
这样就可以实现了,所以一定要区分数字”零“和字符”零“.
NULL:在ASCII码的第一个字符是NULL,它的数值是0,占用1字节;C语言把它作为字符串的最后一个字符,以表示字符串到此结束."\0";NULL还可以初始化指针,在后续的学习中再继续完善这篇博客。
NUL在书上是这样的,其实并不存在NUL这个”零“,只要把这些记住其实我觉得就好了.
回头看一看其实C中的乐趣还有很多。