这是一个测试静态和动态范围的简单程序。但是,我无法使用动态范围输出答案,因为C ++使用静态范围。
说明:
静态范围 - 变量的范围基于子程序(函数)的空间(块结构)关系
动态范围 - 变量的范围基于子程序(函数)的调用顺序,而不是基于块结构。
#include <iostream>
using namespace std;
int a;
int b;
int p()
{
int a, p;
a = 0;
b = 1;
p = 2;
return p;
}
void print()
{
cout << a << " " << b << endl;
}
void q()
{
int b;
a = 3;
b = 4;
print();
}
int main()
{
a = p();
q();
}
此代码输出:
3
1
使用静态范围,但是用动态范围输出什么呢?
我的猜测是
3
4
但我不确定因为我无法使用动态范围测试C ++代码
第二个问题:是否有一种可访问的方法来测试这样的代码示例,使用动态范围代替静态用于学习目的?