當前位置:首頁 » 編程語言 » c語言中static的意思
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中static的意思

發布時間: 2023-03-07 23:14:09

⑴ 在c語言中static有什麼含義

最主要有兩點用途。
讓一個變數長期有效,而不管其是在什麼地方被申明。比如:
int fun1()
{
static int s_value = 0;
....
}
那麼fun1不管在什麼地方被調用,當函數退出後,s_value最後的值將一直會被系統保存(相當於一個全局變數),下次s_value再被用到時,也即當fun1()再次被調用時,s_value初始值將是最近被保存過的值(請注意s_value初始化操作只會被執行一次,即上述s_value =0 這個語句)。

2.避免多個文件使用了相同的變數名而導致沖突
比如有多個文件,分別由幾個人獨立開發的。假定他們在各自的文件中定義相同的「全局」變數名(僅僅指在他們獨自的文件中全局),當系統集成時,由於他們使用了名字一樣的「全局」變數,導致有難於遇見的問題。解決這個問題方便的做法就是在各自文件中,在相同的全局變數申明前加上static修飾符。這樣系統就會為他們分配不同的內存,互不影響了。

⑵ c語言中static說明是什麼意思

在C語言中,static關鍵字的作用如下:

1、在修飾變數的時,static修飾的靜態局部變數只執行一次,而且延長了局部變數的生命周期,直到程序運行結束以後才釋放。

2、static修飾全局變數的時,這個全局變數只能在本文件中訪問,不能在其它文件中訪問,即便是extern外部聲明也不可以。

3、static修飾一個函數,則這個函數的只能在本文件中調用,不能被其他文件調用。Static修飾的局部變數存放在全局數據區的靜態變數區。

(2)c語言中static的意思擴展閱讀:

static關鍵字在C語言、C++、java中的作用有著相似之處,但也存在差異:

一、C++的static用法:

1、面向過程程序設計中的static和面向對象程序設計中的static。前者應用於普通變數和函數,不涉及類;後者主要說明static在類中的作用。

2、在類中,static可以用來修飾靜態數據成員和靜態成員方法

靜態數據成員

(1)靜態數據成員可以實現多個對象之間的數據共享,它是類的所有對象的共享成員,它在內存中只佔一份空間,如果改變它的值,則各對象中這個數據成員的值都被改變。

(2)靜態數據成員是在程序開始運行時被分配空間,到程序結束之後才釋放,只要類中指定了靜態數據成員,即使不定義對象,也會為靜態數據成員分配空間。

(3)靜態數據成員既可以通過對象名引用,也可以通過類名引用。

靜態成員函數

(1)靜態成員函數和靜態數據成員一樣,他們都屬於類的靜態成員,而不是對象成員。

(2)非靜態成員函數有this指針,而靜態成員函數沒有this指針。

(3)靜態成員函數主要用來方位靜態數據成員而不能訪問非靜態成員。

二、java的static用法:

1、聲明為static的變數稱為靜態變數或類變數。可以直接通過類名引用靜態變數,也可以通過實例名來引用靜態變數,但最好採用前者,因為後者容易混淆靜態變數和一般變數。

2、聲明為static的方法稱為靜態方法或類方法。靜態方法可以直接調用靜態方法,訪問靜態變數,但是不能直接訪問實例變數和實例方法。靜態方法中不能使用this關鍵字,因為靜態方法不屬於任何一個實例。

參考資料來源:網路-static(計算機高級語言)

⑶ static在c語言中是什麼意思

寫在局部變數前面表示變數是靜態變數,函數調用結束後變數不回收。

寫在全局變數前面,表示靜態全局變數,該變數只能在本文件中訪問,不可以被其餘地方extern。

static 出現在不同的地方含義不同的。

如果是在函數之外使用,表示該對像在此文件中是全局可訪問的,在文件之外是不可訪問的。

如果出現在函數內部,則表示該變數不是自動變數,它是一個可以初始化的變數(如果不進行顯式初始化,默認值是0)。改變了它的值以後,函數結束時它的值也會保留。

(3)c語言中static的意思擴展閱讀:

static int n; //定義靜態全局變數改為int n; //定義全局變數

再次編譯運行程序,細心體會全局變數和靜態全局變數的區別。

全局變數是不顯式用static修飾的全局變數,全局變數默認是有外部鏈接性的,作用域是整個工程,在一個文件內定義的全局變數,在另一個文件中,通過extern 全局變數名的聲明,就可以使用全局變數。

全局靜態變數是顯式用static修飾的全局變數,作用域是聲明此變數所在的文件,其他的文件即使用extern聲明也不能使用。

⑷ C語言編程中「static」是什麼意思

1) 在函數體,一個被聲明為靜態的變數在這一函數被調用過程中維持其值不變。
2) 在模塊內(但在函數體外),一個被聲明為靜態的變數可以被模塊內所用函數訪問,但不能被模塊外其它函數訪問。它是一個本地的全局變數。
3) 在模塊內,一個被聲明為靜態的函數只可被這一模塊內的其它函數調用。那就是,這個函數被限制在聲明它的模塊的本地范圍內使用。