本文目錄一覽:
- 1、C語言中static是做什麼用的?
- 2、c語言中static說明是什麼意思?
- 3、c語言中static 到底有啥作用啊?
- 4、在C語言中static有什麼含義
- 5、static在c語言中是什麼意思
- 6、c語言static?
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修飾的局部變數存放在全局數據區的靜態變數區。
擴展資料:
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(計算機高級語言)
c語言中static 到底有啥作用啊?
在C語言中,static的作用有三個,分別如下:
1、隱藏;
當同時編譯多個文件時,所有未加static前綴的全局變數和函數都具有全局可見性。
2、保持變數內容的持久;
存儲在靜態數據區的變數會在程序剛開始運行時就完成初
始化,也是唯一的一次初始化。
3、默認初始化為0;
在靜態數據區,內存中所有的位元組默認值都是0x00,某些
時候這一特點可以減少程序員的工作量。
在C語言中static有什麼含義
是不止一個意思,要看用到哪裡。比如:
static int a;
int b;
void func(void)
{
static int c;
int d;
}
在這裡,a與b都是全局變數,二者的區別是,b可以被別的文件使用,a只能在本文件中使用,這是static對全局變數的作用。
c和d的區別是,d是一個自動變數,func函數執行完後,d會自動被釋放。但c卻不會被釋放,下一次調用func函數時,c的值會保留上次的值繼續使用。
static在c語言中是什麼意思
static在c語言中是私有、靜態意思。
用於在函數中聲明「靜態變數」用,在每一次調用後,該變數並不在函數返回時立即釋放,變數中保存的值,可以保留到下一次調用時繼續有效。
私有就是隱藏。static函數只能聲明後的本文中調用。static全局變數只能聲明後的本文中調用。static局部變數只能聲明後的本函數調用
靜態就是一直存在,相對於每次調用動態分配而言。static函數未驗證是否每次調用代碼地址都是一致的。static全局變數生命周期到程序或進程結束。static局部變數生命周期到程序或進程結束。
static的使用和作用
靜態全局變數。全局變數前面加static,修飾全局變數為靜態全局變數,改變全局變數的可見性。靜態函數。函數返回類型前加static,修飾函數為靜態函數,改變函數的可見性。
類的靜態成員。類成員前加static,修飾類的成員為類的靜態成員,實現多個對象之間的數據共享,並且使用靜態成員不會破壞封裝性,也保證了安全性。類的靜態函數,類函數前加static,修飾類的函數為靜態函數,減少資源消耗,不需要實例化就可以使用。
c語言static?
您好,你的問題,我之前好像也遇到過,以下是我原來的解決思路和方法,希望能幫助到你,若有錯誤,還望見諒!展開全部
static 用來說明靜態變數。
1、如果是在函數外面定義的,那麼其效果和全局變數類似,即static說明的變數可以在當前c程序文件中使用。
2、如果是在函數內部定義的,那麼這個變數只初始化一次,即使再次調用這個函數,這個static變數也不會再次被初始化,於是,這個變數的取值就會一直保存著,我們再次調用該函數時,仍是保存的上一次函數調用時保存的結果。
擴展資料:
c語言中的static有三個主要作用:
1、隱藏性。當我們同時編譯多個文件時,所有未加static前綴的全局變數和函數都具有全局可見性。
2、static可以保持變數內容的持久,當static定義變數在函數內部時,改變數值的生命周期和全局變數相同。非常感謝您的耐心觀看,如有幫助請採納,祝生活愉快!謝謝!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309074.html