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.

  • 相关阅读:
    POJ 3368.Frequent values
    HDOJ 1166.敌兵布阵
    javaWeb之文件下载
    javaWeb之文件上传
    centos系统下忘记了root密码怎么办?
    如何在centos下挂载与卸载磁盘
    验证码生成(java版本)
    javaweb怎么过滤乱码
    mysql修改默认字段大小
    我所知道的命名方式(软件)
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256496.html
Copyright © 2011-2022 走看看