当我们定义了一个数组:
[C++] 纯文本查看 复制代码 char arr[12];
如果我们只给arr[0]和arr[1]赋值,就像这样:
[C++] 纯文本查看 复制代码 arr[0] = "Hello";
arr[1] = "World!";
那么,如果我们输出这个数组:
[C++] 纯文本查看 复制代码 for (int i = 0;i <= 12;i++){
printf("%s",arr[i]);
}
输出的结果如下:
[AppleScript] 纯文本查看 复制代码 HelloWorld!烫烫烫烫烫烫烫烫烫烫
为什么呢?
因为我们只定义了arr[0]和arr[1],剩下的没有定义,但是还是会被输出
由于剩下的2~12在内存中为空,所以乱码
解决方案:
[C++] 纯文本查看 复制代码 arr[0] = "Hello";
arr[1] = "World!";
arr[2] = "\0"; //结束字符
|