任何人都可以帮我找到输出结果吗?这是在C ++ ... homwork
在程序中全局定义的变量x被赋予整数值3.在名为f_name的函数中定义的变量x被赋予整数值5.在查看下面的代码后,请回答以下内容。
1 #include <iostream>
2 using namespace std;
3 int f_name(int y);
4
5 int x = 3;
6
7 int main()
8 {
9 cout << x;
10 cout << f_name(x);
11 return 0;
12 }
13
14 int f_name(int y)
15 {
16 int x = 5;
17 return (x + y);
18 }
What is the output of line 9? _________ line 10? _______________
答案 0 :(得分:2)
第9行= 3
第10行= 8是输出。
在第9行,只打印全局变量 x 的值。
在第10行,只是将x
的值传递给f_name(iny y)。这意味着此功能范围内y
的值 3 。将其添加到局部变量x
会使函数返回 8 。
我认为,您在理解变量范围方面遇到了麻烦。要理解这一点,保持这个程序的观点,有两种变量 -
局部变量是具有局部范围的变量,只能在声明它们的函数中访问。
全局变量是寿命从程序开始开始并且仅在程序终止后结束的变量。文件范围内的全局变量可以在翻译单元的任何位置访问。
int main()
{
cout << x; // x here is the global variable. Because, in main, there is no variable
// called x declared. So it prints 3
cout << f_name(x); // Here you are passing the value of global variable x, which is 3
return 0;
}
int f_name(int y) // The passed value ( i.e., 3 ) is copied to y.
{
int x = 5;
return (x + y); // Here you are not accessing global variable x. Because, there
// is a local variable declared called x and initialize with value 5
// Now (5+3) = 8, which is returned.
}
答案 1 :(得分:2)
3和8.不?
第9行cout << x;
打印全局x
的值,即3。
第17行
return (x + y ); // outputs 8
x指的是本地x
,而y的值等于全局x
的值,因为它作为参数传递给函数。