【发布时间】:2016-10-19 05:37:36
【问题描述】:
(这是问我的问题。) 以下程序的输出是什么?解释你的结果。
int val = 20;
int func1()
{
int val = 5;
return val;
}
int func2()
{
return val;
}
int main()
{
// (1)
cout << func1() << endl;
// (2)
cout << func2() << endl;
}
Output::
5
20
---我假设它是这样的,因为:---
func1 将 val 从 20 更改为 5。
func2 没有任何改变。
我相信val是由每个函数修改并单独存储的。
谁能解释一下,告诉我应该看什么主题?
【问题讨论】:
-
删除
func1中的int关键字,你就有了一个赋值(改变了全局变量的值)而不是一个声明(它创建了一个新的局部var并将其初始化为5 )。 -
基本,没有。这就是 C++。很高兴你运行程序。令人沮丧的是,有多少人问类似的问题却不打扰。
-
尝试编辑你的问题标题,赋予它一些有意义的意义。