作用域是程序的一个区域,一般来说有三个地方可以声明变量:
我们将在后续的章节中学习什么是函数和参数。本章我们先来讲解声明是局部变量和全局变量。
在函数或一个代码块内部声明的变量,称为局部变量。它们只能被函数内部或者代码块内部的语句使用。下面的实例使用了局部变量:
#include <iostream> |
using namespace std; |
int main () |
{ |
// 局部变量声明 |
int a, b; |
int c; |
// 实际初始化 |
a = 10; |
b = 20; |
c = a + b; |
cout << c; |
return 0; |
} |
在所有函数外部定义的变量(通常是在程序的头部),称为全局变量。全局变量的值在程序的整个生命周期内都是有效的。
全局变量可以被任何函数访问。也就是说,全局变量一旦声明,在整个程序中都是可用的。下面的实例使用了全局变量和局部变量:
#include <iostream> |
using namespace std; |
// 全局变量声明 |
int g; |
int main () |
{ |
// 局部变量声明 |
int a, b; |
// 实际初始化 |
a = 10; |
b = 20; |
g = a + b; |
cout << g; |
return 0; |
} |
#include <iostream> |
using namespace std; |
// 全局变量声明 |
int g = 20; |
int main () |
{ |
// 局部变量声明 |
int g = 10; |
cout << g; |
return 0; |
} |
10 |
当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。定义全局变量时,系统会自动初始化为下列值:
数据类型 | 初始化默认值 |
---|---|
int | 0 |
char | '\0' |
float | 0 |
double | 0 |
pointer | NULL |
正确地初始化变量是一个良好的编程习惯,否则有时候程序可能会产生意想不到的结果。