zoukankan      html  css  js  c++  java
  • C++添加一个头文件和extern以及全局变量和局部变量问题(清C++蓝书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.

  • 相关阅读:
    Spark Streaming ---没用
    spark-streaming笔记 ---没用
    zookeeper笔记 ---没用
    远程调试笔记 ---没用
    远程仓库
    git之时光机穿梭
    分布式版本控制系统 VS 集中式
    Map与WeakMap
    set与weakset
    Genarator生成器
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256496.html
Copyright © 2011-2022 走看看