1. c語言中的static是什麼
static
用來說明靜態變數。
如果是在函數外面定義的,那麼其效果和全局變數類似,但是,static定義的變數只能在當前c程序文件中使用,在另一個c代碼裡面,即使使用extern關鍵詞也不能訪問這個static變數。
如果是在函數內部定義的,那麼這個變數只初始化一次,即使再次調用這個函數,這個static變數也不會再次被初始化,於是,這個變數的取值就會一直保存著,也就是說,當你再次調用這個函數的時候,裡面用到這個static變數時,就會發現,還是它還是上一次函數調用時的結果。
2. static在c語言中是什麼意思
寫在局部變數前面表示變數是靜態變數,函數調用結束後變數不回收。
寫在全局變數前面,表示靜態全局變數,該變數只能在本文件中訪問,不可以被其餘地方extern。
static 出現在不同的地方含義不同的。
如果是在函數之外使用,表示該對像在此文件中是全局可訪問的,在文件之外是不可訪問的。
如果出現在函數內部,則表示該變數不是自動變數,它是一個可以初始化的變數(如果不進行顯式初始化,默認值是0)。改變了它的值以後,函數結束時它的值也會保留。
(2)c語言static取值擴展閱讀:
static int n; //定義靜態全局變數改為int n; //定義全局變數
再次編譯運行程序,細心體會全局變數和靜態全局變數的區別。
全局變數是不顯式用static修飾的全局變數,全局變數默認是有外部鏈接性的,作用域是整個工程,在一個文件內定義的全局變數,在另一個文件中,通過extern 全局變數名的聲明,就可以使用全局變數。
全局靜態變數是顯式用static修飾的全局變數,作用域是聲明此變數所在的文件,其他的文件即使用extern聲明也不能使用。
3. c語言static的使用
函數返回g數組的地址指針,然而不加static的話g數組的生存周期只在zzjgrade中,函數運行完畢就銷毀了,導致亂碼。
static代表這是個全局靜態變數,使得g數組的值保存了下來。
你可以讓函數直接返回一個字元串。或者與static同理,將g數組設為全局變數即可。
4. C語言static()函數
static是關鍵字,可以用來修飾任何函數,表示這個函數只能在當前文件使用,不能被項目中其它c文件調用
5. C語言static的用法
static 型變數只初始化一次,第一次調用fun函數時,f初始化為1,運行完後f仍為1;第二次調用時f的值還是1,不再初始化,於是f在fun運行完後變為2,這樣依次完成所有循環,每次計算f時,都沿用上一個循環的f值
6. c語言static
您好,你的問題,我之前好像也遇到過,以下是我原來的解決思路和方法,希望能幫助到你,若有錯誤,還望見諒!展開全部
static 用來說明靜態變數。
1、如果是在函數外面定義的,那麼其效果和全局變數類似,即static說明的變數可以在當前c程序文件中使用。
2、如果是在函數內部定義的,那麼這個變數只初始化一次,即使再次調用這個函數,這個static變數也不會再次被初始化,於是,這個變數的取值就會一直保存著,我們再次調用該函數時,仍是保存的上一次函數調用時保存的結果。
(6)c語言static取值擴展閱讀:
c語言中的static有三個主要作用:
1、隱藏性。當我們同時編譯多個文件時,所有未加static前綴的全局變數和函數都具有全局可見性。
2、static可以保持變數內容的持久,當static定義變數在函數內部時,改變數值的生命周期和全局變數相同。非常感謝您的耐心觀看,如有幫助請採納,祝生活愉快!謝謝!
7. c語言中static說明是什麼意思
在C語言中,static關鍵字的作用如下:
1、在修飾變數的時,static修飾的靜態局部變數只執行一次,而且延長了局部變數的生命周期,直到程序運行結束以後才釋放。
2、static修飾全局變數的時,這個全局變數只能在本文件中訪問,不能在其它文件中訪問,即便是extern外部聲明也不可以。
3、static修飾一個函數,則這個函數的只能在本文件中調用,不能被其他文件調用。Static修飾的局部變數存放在全局數據區的靜態變數區。
(7)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(計算機高級語言)
8. C語言中static變數的賦值問題
static int a = 0; // 運行期時初始化一次, 下次再調用時, 不進行初始化工作如下:
printf(「%d」,a);
a++;
}
int main()
{
staticLocalVar(); // 第一次調用, 輸出a=0
staticLocalVar(); // 第二次調用, 記憶了第一次退出時的值, 輸出a=1
return 0;
}
(8)c語言static取值擴展閱讀
1、static對全局變數的修飾,可以認為是限制了只能是本文件引用此變數。有的程序是由好多.c文件構成。彼此可以互相引用變數,但加入static修飾之後,只能被本文件中函數引用此變數。
2、static對棧變數的修飾,可以認為棧變數的生命周期延長到程序執行結束時。一般來說,棧變數的生命周期由OS管理,在退棧的過程中,棧變數的生命也就結束。
3、但加入static修飾之後,變數已經不再存儲在棧中,而是和全局變數一起存儲。同時,離開定義它的函數後不能使用,但如再次調用定義它的函數時,它又可繼續使用, 而且保存了前次被調用後留下的值。
9. c語言 static靜態變數
c語言的static變數是在程序載入的時候就為之分配內存的,一直到程序結束,而不像普通變數那樣函數執行一次分配一次。所以當第一次執行p(1)的時候,y已經加1了,下次執行p(2)時,y不會恢復成1,還是2;你就當全局變數的功能處理就行,性能上有區別
10. static在c語言中是什麼意思
static在c語言中是「靜態」的意思,用於在函數中聲明「靜態變數」用,在每一次調用後,該變數並不在函數返回時立即釋放,變數中保存的值,可以保留到下一次調用時繼續有效。