天天看點

c++中static關鍵字

變量作用域和生存期

   變量作用域是指可以通路變量,對其進行一系列操作的代碼區域。(變量的作用域外,可能變量仍然存在,但是不能被通路,如static局部變量)變量的生存期是指變量存在的執行時間段。作用域是空間概念,生存期是時間的概念。

static關鍵字

  static 全局變量:變量儲存在全局資料區裡,未定義時預設初始化為0;static類型的全局變量,隻在目前檔案中有效,是以在不同的檔案中可以聲明同名的全局靜态變量。

  static 局部變量:聲明在局部函數中靜态變量獨立于函數體存在而存在,儲存在全局資料區中,而不是棧中。如果沒有定義,在第一次調用時初始化為0。雖然局部靜态變量獨立于函數的調用存在,但是作用域隻是局部函數的代碼區域内。

  static類成員變量:獨立于對象存在,被類的所有對象共有,并且記憶體中隻有一份拷貝,儲存在全局資料區中。可以通過類名和對象通路。

  static類成員方法:隻能操作靜态成員變量和調用靜态成員方法。可以通過類名和對象通路。

繼續閱讀