因为我当时老师讲的时候,并没有完全懂里面的原理,自己下来把各种情况都试了一遍,先记录下,以后好查漏补缺。
1.
#include <iostream>
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.