1、C++中標(biāo)識(shí)符作用域:
函數(shù)原型作用域:在函數(shù)聲明中形參列表左右括號(hào)之間;
局部作用域(塊作用域):聲明變量所在的大括號(hào)之間
類作用域:類的成員所具有的作用域
命名空間作用域:using namespace std;全局命名空間
2、對(duì)象生存期:
靜態(tài)生存期:在空間命名作用域中生命的對(duì)象具有靜態(tài)生存期,與程序的運(yùn)行期相同。在函數(shù)內(nèi)部的局部作用域中聲明具有靜態(tài)生存期的對(duì)象,要使用關(guān)鍵字static,局部作用域中的靜態(tài)變量,當(dāng)一個(gè)函數(shù)返回后,下一次再調(diào)用時(shí)該變量還會(huì)保存上一回的值。
動(dòng)態(tài)生存期:除上述兩種情況,其余的對(duì)象都具有動(dòng)態(tài)生存期。動(dòng)態(tài)生存期變量不指定初始值意味著初始值不定。
【注】函數(shù)中的靜態(tài)局部變量,具有全局壽命,只在第一次進(jìn)入函數(shù)時(shí)初始化,以后調(diào)用時(shí)保留上一次的數(shù)值;而函數(shù)中的動(dòng)態(tài)變量每次進(jìn)入函數(shù)時(shí)都需要初始化。
#include <iostream>using namespace std;int i=1;//變量i具有命名空間作用域,靜態(tài)全局變量,具有靜態(tài)生存期 void fun(){ static int a=2; static int b;//靜態(tài)局部變量,只在第一次進(jìn)入函數(shù)時(shí)初始化 int c=10;//動(dòng)態(tài)局部變量 ,每次進(jìn)入函數(shù)都要初始化 a+=2; c+=5; i+=32; cout<<"---fun---"<<endl; cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl; b=a;}int main(){ static int a;//main函數(shù)中的靜態(tài)局部變量 int b=-10; int c=0; //main函數(shù)中的動(dòng)態(tài)局部變量 cout<<"---main---"<<endl; cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl; c+=8; fun(); cout<<"---main---"<<endl; cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl; i+=10; fun(); return 0; }【注】結(jié)構(gòu)化程序設(shè)計(jì)中程序模塊的基本單位是函數(shù),模塊間對(duì)內(nèi)存中數(shù)據(jù)的共享是通過函數(shù)之間的數(shù)據(jù)共享實(shí)現(xiàn)的。有兩種途徑:參數(shù)傳遞和全局變量!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注