字符串结束符:'\0',其本质就是8位的 0000 0000,而字符类型中并没有这个字符(注意与ASCLL码区别,在ASCLL中000——代表NULL)。 所以用0的转意来表示,其意义是字符串的结束符。
而当对字符串赋值 如 int a[] = "hello world"时,通常都没有写字符串的结束符'\0',那是因为c编译器会自动在数组的末尾加上。
所以当需要将字符串进行赋值给数组的可以由如下3种方式:
1.a[] = "hello world"; //不给定数组大小,让编译器来自动添加结束符'\0
2.a[] = {'h','e','l','l','o','\ ','w','o','r','l','d','\0'}; //不给定数组的大小,但是要将结束符加上;
3.a[12] = {'h','e','l','l','o','\ ','w','o','r','l','d'}; //给定字符串的大小,但是许给结束符预留位置;
注意:在使用 strlen() 来计算字符串长度时,是不包括 结束符'\0'的,但是在将字符串赋值给另外一个数组时,是需要将结束符赋值给数组的。
本文参见:https://www.cnblogs.com/x_wukong/p/5916370.html 比本文更加的详细
谭浩强——《c语言第三版》177页