/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:gcd.cpp
*作 者:惠睿
*完成日期:2014年11月12日
*版 本 号:v1.0
*
*问题描述:阅读有两个全局变量的程序,阅读中画出其中各变量变化过程,以掌握全变量的存储特征。
*程序输出:输出x。
*/
#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;
}
预计运行结果是:1000
实际运行结果是:125
运行结果:
原因:x是全局变量,在程序开始时,x的初值是void cude()对它的定义10,在执行main函数的过程中,x的值就会变成main对它的赋值5,再去执行void cude(),所以最后运行结果会是125.
去掉extern:
#include <iostream>
using namespace std;
void cude();
int main()
{
int x;//去掉extern及本行全删除会怎样?
x=5; //去掉这一句呢?
cude();
cout<<x<<endl;
return 0;
}
int x=10;
void cude()
{
x=x*x*x;
}
运行结果:5
原因:x是全局变量,在程序开始时,x的初值是void cude()对它的定义10,在执行main函数的过程中,x的值就会变成main对它的赋值5,而在下一步执行过程中,x就直接输出了,并没有去执行void cude函数。
去掉x=5,运行结果:1000