第十二周 项目一:阅读程序(2)

来源:互联网 发布:git for windows 编辑:程序博客网 时间:2024/04/27 23:10

问题及代码:

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:Project4.cpp * 作    者:李楠 * 完成日期:2014年11月13日 * 版 本 号:v1.0 * * 问题描述:阅读下面两个有全局变量的程序* 输入描述:略 * 程序输出:略*/#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

实际运行结果:

知识点总结:

虽然extern表示对全局变量x作提前引用声明,但是下面又对x重新赋了值,所以运行结果是125而不是1000.

学习心得:

学习的知识要学会灵活运用,不然就不能变成自己的知识,继续努力!!!

**************************************************去掉extern****************************************************

问题及代码:

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:Project4.cpp * 作    者:李楠 * 完成日期:2014年11月13日 * 版 本 号:v1.0 * * 问题描述:阅读下面两个有全局变量的程序* 输入描述:略 * 程序输出:略*/#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;}

运行结果:

知识点总结:

没有对x作提前引用声明,所以函数的运算过程就不能进行,因而直接输出x=5.

学习心得:

这个结果为什么是5 我也不太明白,谁能告诉我,这样想对不对?????

************************************************extern整行都去掉**************************************************

问题及代码:

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:Project4.cpp * 作    者:李楠 * 完成日期:2014年11月13日 * 版 本 号:v1.0 * * 问题描述:阅读下面两个有全局变量的程序* 输入描述:略 * 程序输出:略*/#include <iostream>using namespace std;void cude();int main(){    //本行全删除会怎样?    x=5; //去掉这一句呢?    cude();    cout<<x<<endl;    return 0;}int x=10;void cude(){    x=x*x*x;}

运行结果:

知识点总结:

如果去掉extern这一句则出现错误,提示x没有被声明

学习心得:

写程序要严谨,缺少每一个部分都会产生错误,结果就会不同~

 

0 0
原创粉丝点击