变量的定义:给变量分配空间,还可以为变量指定初始值。不能重复定义变量
int j; //变量的定义, int k; //变量的定义,分配内存,初始化 extern int n = 10;//变量的定义,初始化(建议不要使用此方法定义)
变量的声明:不给变量分配空间,用于向程序表名变量的类型和名字,此变量在其它cpp中已经定义,变量可以多次声明。
事实上,它只是说明变量定义在程序的其他地方定义过。
extern int i; //变量的声明
定义也是声明,在一个源文件中,定义后的变量,不需要再声明
声明不是定义,必须在当前或者其他cpp中对变量进行定义,之后才能声明
在使用变量之前必须定义或声明变量。
程序含有两个源文件,在一个源文件中定义并初始化,在另一个源文件中声明,并打印输出:
Test-007.cpp:
#include<iostream> using namespace std; int i = 100; //变量定义,给变量分配空间
Test-001.cpp:
#include<iostream> using namespace std; extern int i; int main() { cout << i << endl; cin.get(); return 0; }
程序可以多次声明:
#include<iostream> using namespace std; extern int i; extern int i;//再一次声明也可以 int main() { cout << i << endl; cin.get(); return 0; }
程序不能重复定义:
int i = 100; //变量定义,给变量分配空间 int i = 100; //不能重复定义
在另一个源文件中定义,在当前文件下声明后。不能再重复定义。
#include<iostream> using namespace std; extern int i; int i = 200; int main() { cout << i << endl; cin.get(); return 0; }