在程序的不同位置,可能会声明各种不同类型(这里指静态或非静态)的变量。然而,声明的位置不同、类型不同导致每个变量在程序中可以被使用的范围不同。我们把变量在程序中可以使用的有效范围称为变量的作用域。
任何变量都必须在声明之后才能被使用,所以一切变量的作用域都始于变量的声明之处。那么,它到什么地方终止呢?我们知道C++的程序是一个嵌套的层次结构,即语句块里面还能有语句块。最终语句块由各条语句组成,而语句就是程序中的最内层,是组成程序的一个最小语法单位。在某一层次声明的变量的作用域就终止于该变量所在层次的末尾。
#include <QCoreApplication>
#include <QDebug>
#include <iostream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<<"qt fish@gmail.com"<<endl;
std::cout << "x++ fish@gmail.com"<<std::endl;
int b=4 ,c=4;
qDebug()<<"init b "<<b<<"init c"<<c<<endl;
{
int c=9;
b=7;
qDebug()<<"get b from {}"<<b<<"get c from {}"<<c<<endl;
}
qDebug()<<"get b from main"<<b<<"get c from main"<<c<<endl;
return a.exec();
}
输出结果