【发布时间】:2016-06-05 18:05:01
【问题描述】:
我做了一个相当短的基于文本的动画程序:
#include <iostream>
void animation(char words[], int sizeOfWords) {
for(int x = 0; x < sizeOfWords; x++){
for(double y = 0; y < 10000000; y++);
std::cout << words[x];
if(words[x] == '!') std::cout << std::endl;
}
}
int main() {
char words[] = {'H','e','l','l','o',' ','W','o','r','l','d','!','T','h','i','s',' ','i','s',' ','m','y',' ','f','i','r','s','t',' ','C','+','+',' ','a','n','i','m','a','t','i','o','n','!','H','o','p','e',' ','y','o','u',' ','e','n','j','o','y','e','d','!'};
int amountOfLetters = 0;
for(unsigned x : words) amountOfLetters++;
animation(words, amountOfLetters);
}
当我第一次制作程序时,我忘记将 int amountOfLetters; 初始化为 0。那时我得到了所有这些随机符号。无论是否初始化,程序都很好。只是不给它分配 0,我最终得到了这些额外的东西。
不初始化变量将给出以下结果:
世界你好! 这是我的第一个 C++ 动画! 希望你喜欢! ! t ht ÉH P j T j Ðou2ö¤.■ Á╬ouÈ╬ouht mzou 进程返回 0 (0x0) 执行时间:11.466 s 按任意键继续。
初始化变量将给出以下结果:
世界你好! 这是我的第一个 C++ 动画! 希望你喜欢! 进程返回 0 (0x0) 执行时间:4.444 s 按任意键继续。
如果需要,您可以尝试自己运行代码。我只想知道为什么这些符号被打印出来。如果您能提供帮助,我将不胜感激。如果不是,感谢您的光临。
这篇文章不是为什么未初始化的字符数组会被随机符号填充?的重复。我谈论传递数组中的元素数量并将它们作为参数传递,然后循环它们。另一篇文章只是简单地谈论初始化一个数组 without Information in it 并打印它。同时,我又在谈论拥有信息,只是容纳它们的数组的大小是问题所在。简单地说,他们是关于打印一个没有元素的数组,我的是关于循环遍历一个有元素的数组,但是错误地对大小做出了错误。
【问题讨论】:
-
哦.. 我试着找了,没找到。即使我输入标题,它也没有显示任何类似的东西。无论如何,我会读它,谢谢。
-
我使用了谷歌,但不知道这个问题是否能回答你的问题。