char arr1[] = "abc";
char arr2[] = {'a','b','c'};
printf("%s\n",arr1);
printf("%s\n",arr2);

result

TM3qHS.png

第二个结果会出现乱码,是因为单个字符后面没有\0,系统会自动给字符串后面加\0。

strlen打印字符串长度

#include <string.h>   //计算字符长度的头文件

TM8tgI.png

arr1中虽然有\0,但是在打印长度时不计算在当中,但\0会占用一个字节。

arr2中没有写\0,所以会出现随机数。

依次取a,b,c,在c后面的内存不知道是什么字符,直到在内存中找寻到\0才会停止,所以在第16个元素的时候找寻到了\0,此过程都是随机的.

最后修改:2021 年 12 月 21 日
如果觉得我的文章对你有用,请随意赞赏