数组与指针,1111111111111

img


256行这里为什么一定要这一步,我没要这一步也可以啊,它说是为了让s1形成字符串,但没有这一步也形成了字符串呀

我也感觉不太对劲,应该是*p1='\0'来给字符串加上结束标志,而不是p1='\0'

'\0'表示字符串结尾,while循环里没给p1结尾

字符串是以'\0'作为结束的标志

初始化字符数组有两种方法:
一种是:char array[10]={"hello"};
另一种是:char array[10]={'h','e','l','l','\0'};
第一种方法用途较广,初始化时,系统自动在数组没有填值的位置用,'\0'补上。另外, 这种方法中的花括号可以省略,即能表示成:char array[10]="hello";
没有'\0'是能成字符串,是因为你按第一种方式初始化时,系统自动补上了。'\0'作为字符串终止符,是所谓有始有终,加上是更完整,更好一些的。

以上仅供参考,如有任何疑问,可以评论回复,看到即回。
希望对题主有所帮助!可以的话,点个采纳!