问题描述:
阅读下列程序,写出程序的运行结果。上机时运行程序,与你的预期进行对
照、理解。如果对运行结果和其背后的原理仍不理解,请通过单步执行的手段跟踪理解。
(2)阅读下面两个有全局变量的程序。
代码:
#include <iostream>
using namespace std;
int a=3, b=5;
int max(int a, int b)
{
int c;
c=a>b? a:b;
return c;
}
int main()
{
int a=8; //若无这一句,又将如何?
cout<<max(a,b)<<endl;
return 0;
}
预计运行结果是: 8 5
实际运行结果是:
代码:
#include <iostream>
using namespace std;
void cude();
int main()
{
extern int x;//去掉extern及本行全删除会怎样?
x=5; //去掉这一句呢?
cude();
cout<<x<<endl;
return 0;
}
int x=10;
void cude()
{
x=x*x*x;
}
预计运行结果是:
125 125 125 1000
实际运行结果是:
知识点总结与学习心得:
全局变量就是做用于整个全局变量声明位置后函数,而extern是对后面声明的全局变量的调用。然而像第二种情况,函数里的x没有extern的话,那么这个x与后面的x没联系。so第二个是输出5。至于第3个是为声明x变量放了一个语法错误,所以跑不出来。通过这次体验我觉得全局变量的起名和调用还需我们多多细心去推敲,以免南辕北辙!