搜尋此網誌

2011年7月16日 星期六

C++ 變數的生存範圍和種類

C++的變數範圍(Scope)有三種

  • 區域變數(Local Variables):在函式內宣告的變數,當跳離或函式結束執行的時候,此變數的記憶體空間會自動被回收

  • 靜態變數(Static Variables):在程式主體和函式之間的變數.程式結束執行的時候記憶體會自動被作業系統回收

  • 動態變數(Dynamic Variables):實際執行時期用到的變數.要用delete手動把存在記憶體的變數值刪掉,或是程式結束執行的時候會被作業系統自動回收.



#include <iostream>
using namespace std;

void sum3(int);
int main() {
int a=1;//Static Variable
sum3(a);
int * ptr=new int;//Dynamic Variable
*ptr=2;
cout << "before delete: "<<endl;
cout << *ptr<<endl;
delete ptr;
cout << "after delete:" <<endl;
cout << *ptr<<endl;
return 0;
}

void sum3(int a) {
int b=a;//Local Variable
cout << b<<"\n";
}

沒有留言:

張貼留言