查看: 449|回复: 0

[C/C++] 关于数组特别重要的一点,也在此记录一下

[复制链接]

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

发表于 2022-9-14 12:00:06 | 显示全部楼层 |阅读模式
当我们定义了一个数组:
[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"; //结束字符


小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表