【发布时间】:2017-04-02 16:02:38
【问题描述】:
我有 3 个功能:
- 第一个函数采用 int a 并打印该点数。
- 第二个函数采用 int b 并打印该数量的星星。
- 第三个函数采用a 和b 并调用dots 函数和stars 函数。当我在 main 中调用它时,它返回 0 而没有任何输出。
每个功能都可以正常工作 - 为什么第三个功能不工作?
编辑:尝试初始化 i=0,代码仍以相同的结果编译。同样,dots() 和 stars() 函数在单独调用时都能正常工作。
void dots(int a){
for(int i; i<a; i++){
cout << ".";
}
}
void stars(int a){
for(int i; i<a; i++){
cout << "*";
}
}
//(not working):
void dotsstars(int a, int b){
dots(a);
stars(b);
}
int main(){
dotsstars(5, 6);
return 0;
}
【问题讨论】:
-
未初始化的自动变量(即局部变量)不会被隐式初始化。它们的值将是不确定的。在 C++ 中使用它们会导致未定义的行为。