变量的作用域指的是变量在程序中可访问的范围。
变量的作用域决定了变量在不同部分代码中的可见性和有效性。
一、代码演示讲解
for(int i = 1; i < 3; i++){
int nianLing = 18;
for(int j = 1; j < 3; j++){
string xingMing = "张三"; //作用域就是当前的for循环中
cout << xingMing << nianLing << endl;
}
//cout << xingMing << nianLing << endl;//这句话报错
}
作用域的范围是根据代码所在的位置确定的,以{}
为界限进行区分。
二、全局变量
程序中定义在函数(包括main函数)之外的变量称为全局变量。
全局变量的作用域是程序从变量定义到整个程序结束的部分,这意味在任何位置都可以访问到它。
int quanJuBianLiang = 1000; //全局变量
int main(){
cout << quanJuBianLiang << endl;
return 0;
}
三、局部变量
函数中定义的变量就是该函数的局部变量;在代码块{}
中定义的变量就是该代码块的局部变量。
局部变量的作用域属于所在的代码块{}
,超过了这个范围是无法访问的,它的作用范围就是从{
开始,到}
结束。
int main(){
int juBuBianLiang = 100; //局部变量
for(int i = 0; i < 10; i++){ // i也是局部变量
cout << i << endl;
}
return 0;
}
四、常量(全局常量)
常量是相对于变量来说的,变量是可以修改的,比如自增、重新赋值等。
但是常量,是不可以修改的,一旦定义了就确定了它的值,不准修改。
const 类型名 常量名 = 值;
语法非常简单,就是在变量定义的前面加上 const
关键字,表明它是常量。一般用于不会变化的数据,比如圆周率。
const double PI = 3.14;//全局常量
int main(){
return 0;
}
五、宏定义常量
常量的定义还有一种方式,叫宏定义,语法格式
#define 常量名 值
比如:
#define PIE 3.14
define
是预处理阶段进行简单的文本替换,没有类型检查,const
是编译的,具有类型和编译器的类型检查。
六、编程练习
// 爱码岛编程
#include <iostream>
#define PIE 3.14
using namespace std;
int quanJuBianLiang = 500;//全局变量
const double PI = 3.14;//常量圆周率
int main(){
int a = 100;
const double PP = 314;
for(int i = 0 ; i < 5; i++){
cout << "i是:" <<i<< endl;
cout << a << endl;
for(int j = 0; j < 1; j++){
string xingMing = "zhangsan";
cout << i << a << j << endl;
}
//cout << xingMing <<endl;
}
// cout << "i是:" <<i<<endl;
a = 200;
cout << "a是:" << a << endl;
cout << "quanJuBianLiang 是:" << quanJuBianLiang<< endl;
//PI = 3.1415;//常量不允许修改
cout << "圆周率" << PI <<endl;
//PP = 900;
cout << "PP:" << PP <<endl;
cout << "PIE:" << PIE <<endl;
return 0;
}