【C語言】C語言中static關鍵字的作用

C語言中static的作用如下

1.在修飾變量的時候,static修飾的靜態局部變量只執行一次,而且延長了局部變量的生命週期,直到程序運行結束以後才釋放。 
2.、static修飾全局變量的時候,這個全局變量只能在本文件中訪問,不能在其它文件中訪問,即便是extern外部聲明也不可以。 
3.static修飾一個函數,則這個函數的只能在本文件中調用,不能被其他文件調用。Static修飾的局部變量存放在全局數據區的靜態變量區。初始化的時候自動初始化爲0; 
(1)不想被釋放的時候,可以使用static修飾。比如修飾函數中存放在棧空間的數組。如果不想讓這個數組在函數調用結束釋放可以使用static修飾 
(2)考慮到數據安全性(當程想要使用全局變量的時候應該先考慮使用static)


C++中static關鍵字除了具有C中的作用還有在類中的使用 
在類中,static可以用來修飾靜態數據成員和靜態成員方法 
靜態數據成員 
(1)靜態數據成員可以實現多個對象之間的數據共享,它是類的所有對象的共享成員,它在內存中只佔一份空間,如果改變它的值,則各對象中這個數據成員的值都被改變。 
(2)靜態數據成員是在程序開始運行時被分配空間,到程序結束之後才釋放,只要類中指定了靜態數據成員,即使不定義對象,也會爲靜態數據成員分配空間。 
(3)靜態數據成員可以被初始化,但是只能在類體外進行初始化,若爲對靜態數據成員賦初值,則編譯器會自動爲其初始化爲0 
(4)靜態數據成員既可以通過對象名引用,也可以通過類名引用。

靜態成員函數 
(1)靜態成員函數和靜態數據成員一樣,他們都屬於類的靜態成員,而不是對象成員。 
(2)非靜態成員函數有this指針,而靜態成員函數沒有this指針。 
(3)靜態成員函數主要用來方位靜態數據成員而不能訪問非靜態成員。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章