钱能 C++的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 04:15:50
这是从钱能的《C++程序设计教程》第五章中摘下的
按理,运行应该显示12345
但我用VC运行了,显示是-858993460
为什么
#include <iostream.h>

int func1();
int func2();

void main()
{
func1();
cout <<func2() <<endl;
}

int func1()
{
int n=12345;
return n;
}

int func2()
{
int m;
return m; //warning:possible use of 'm' before definition
}

如果把cout <<func2() <<endl; 改为cout <<func1() <<endl;输出的结果就会是12345,现在输出的的是func2()的值,而在func2()中,m的值没有初始化,返回的是一个没有初始化的值,他的结果当然也就不会是12345了

你怎么确定是12345的?
func1什么也没做
cout <<func2() <<endl;
返回的是m,既然m没有赋值,可不返回一个不确定的数吗?

func2什么也没做要他干么

没有初始化~~~

你打错了把
fun1()
fun2()

PS:
钱能的《C++程序设计教程》
SB教材

这程序有错的,就像楼上说的,m不是定值,输出的只是m一个随机地址