• C++添加一个头文件和extern以及全局变量和局部变量问题(16.3.19上机的一小题)


    因为我当时老师讲的时候,并没有完全懂里面的原理,自己下来把各种情况都试了一遍,先记录下,以后好查漏补缺。

    1.

    #include <iostream>      

    #include"fn1.h"

    using namespace std;

    int n;
    int main()
    {
           n=5;
            fn1();
            cout<<n<<endl;
        return 0;
    }


    #pragma once

     extern int n;
    void fn1(){
         int n;
         n++;
         }


    输出:

    5

    如果fn1()中的 int n;注释掉,则输出6。


    2.

    #include <iostream>
    #include"fn1.h"

    using namespace std;

    int n;

    int main()
    {
            int n;
            n=5;
            fn1();
            cout<<n<<endl;

        return 0;
    }


    #pragma once
    // extern int n;
    void fn1(){
         int n;
         n++;
         }

    如果在main函数中声明n,在fn1中又声明了一次,结果输出为5,。但是若n声明在全局,clude包含在全局n的下面,如下所示,输出为6。

    #include <iostream>

    using namespace std;
       
       int n;

    #include"fn1.h"
    int main()
    {

            n=5;
            fn1();
            cout<<n<<endl;


        return 0;
    }

    #pragma once


    // extern int n;
    void fn1(){
    //    int n;
         n++;
         }

    但是若在fn1中声明int n,输出又为5.

  • 相关阅读:
    软件工程课程总结
    《构建之法》部分读书笔记
    软件工程课程作业
    本周软件工程课程感想
    软件工程课设迭代开发第八天
    软件工程课设迭代开发第五至七天
    软件工程课设迭代开发第四天
    软件工程课设迭代开发第三天
    软件工程课设迭代开发第二天
    Bresenham中点画圆法与二阶差分算法
  • 原文地址:https://www.cnblogs.com/mingrigongchang/p/6246346.html
Copyright © 2020-2023  润新知