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";
}
沒有留言:
張貼留言