变量:变量在定义时,系统会为其分配一个内存地址,赋值时会通过这个地址写入内存,但是这属于临时存储!
局部变量:在函数内部声明的变量,寿命随函数调用结束而结束
#include<iostream>
using namespace std;
void change(int);
int main()
{
int a=1;
cout<<"调用前a="<<a<<endl;
change(a);
cout<<"调用后a="<<a<<endl;
}
void change(int a)
{
a=2;
cout<<"调用时a="<<a<<endl;
}
输出结果:调用前a=1 调用时a=2 调用后a=1
分析:在change函数体内的变量的生命随change函数的结束而结束,说明在函数内部的变量为局部变量。
全局变量:在任一函数外定义的变量称为全局变量,它对程序中的任何函数均有效。
#include<iostream>
using namespace std;
void change(int);
int a=1;
int main()
{
cout<<"调用前a="<<a<<endl;
change(a);
cout<<"调用后a="<<a<<endl;
}
void change(int a)
{
a=2;
cout<<"调用时a="<<a<<endl;
}
输出结果:与上面的结果相同。
分析:对比上面发现a变为全局变量,在第4行中定义,它不在任一函数内,但对程序中所有函数均有效,即其值就默认为a=1,同时可分析出在change函数内可以暂时屏蔽全局变量a的值。