c語言中的static
static 出現在不同的地方含義不同的。
如果是在函數之外使用,表示該對像在此文件中是全局可訪問的,在文件之外是不可訪問的。
如果出現在函數內部,則表示該變數不是自動變數,它是一個可以初始化的變數(如果不進行顯式初始化,默認值是0)。改變了它的值以後,函數結束時它的值也會保留。
㈡ static在c語言中是什麼意思
寫在局部變數前面表示變數是靜態變數,函數調用結束後變數不回收。
寫在全局變數前面,表示靜態全局變數,該變數只能在本文件中訪問,不可以被其餘地方extern。
static 出現在不同的地方含義不同的。
如果是在函數之外使用,表示該對像在此文件中是全局可訪問的,在文件之外是不可訪問的。
如果出現在函數內部,則表示該變數不是自動變數,它是一個可以初始化的變數(如果不進行顯式初始化,默認值是0)。改變了它的值以後,函數結束時它的值也會保留。
(2)c語言中的static擴展閱讀:
static int n; //定義靜態全局變數改為int n; //定義全局變數
再次編譯運行程序,細心體會全局變數和靜態全局變數的區別。
全局變數是不顯式用static修飾的全局變數,全局變數默認是有外部鏈接性的,作用域是整個工程,在一個文件內定義的全局變數,在另一個文件中,通過extern 全局變數名的聲明,就可以使用全局變數。
全局靜態變數是顯式用static修飾的全局變數,作用域是聲明此變數所在的文件,其他的文件即使用extern聲明也不能使用。
㈢ c語言static
您好,你的問題,我之前好像也遇到過,以下是我原來的解決思路和方法,希望能幫助到你,若有錯誤,還望見諒!展開全部
static 用來說明靜態變數。
1、如果是在函數外面定義的,那麼其效果和全局變數類似,即static說明的變數可以在當前c程序文件中使用。
2、如果是在函數內部定義的,那麼這個變數只初始化一次,即使再次調用這個函數,這個static變數也不會再次被初始化,於是,這個變數的取值就會一直保存著,我們再次調用該函數時,仍是保存的上一次函數調用時保存的結果。
(3)c語言中的static擴展閱讀:
c語言中的static有三個主要作用:
1、隱藏性。當我們同時編譯多個文件時,所有未加static前綴的全局變數和函數都具有全局可見性。
2、static可以保持變數內容的持久,當static定義變數在函數內部時,改變數值的生命周期和全局變數相同。非常感謝您的耐心觀看,如有幫助請採納,祝生活愉快!謝謝!
㈣ C語言中static函數的具體作用是什麼
C語言中static函數的具體作用是:
讓一個變數長期有效,而不管其是在什麼地方被申明。
避免多個文件使用了相同的變數名而導致沖突。
㈤ c語言static作用范圍是什麼呢
static的作用有三條。
一、第一個作用:隱藏。
當我們同時編譯多個文件時,所有未加static前綴的全局變數和函數都具有全局可見性。
你可能會問:為什麼在a.c中定義的全局變數a和函數msg能在main.c中使用?前面說過,所有未加static前綴的全局變數和函數都具有全局可見性,其它的源文件也能訪問。此例中,a是全局變數,msg是函數,並且都沒有加static前綴,因此對於另外的源文件main.c是可見的。
如果加了static,就會對其它源文件隱藏。例如在a和msg的定義前加上static,main.c就看不到它們了。利用這一特性可以在不同的文件中定義同名函數和同名變數,而不必擔心命名沖突。Static可以用作函數和變數的前綴,對於函數來講,static的作用僅限於隱藏,而對於變數,static還有下面兩個作用。
二、static的第二個作用是保持變數內容的持久。
存儲在靜態數據區的變數會在程序剛開始運行時就完成初始化,也是唯一的一次初始化。共有兩種變數存儲在靜態存儲區:全局變數和static變數,只不過和全局變數比起來,static可以控制變數的可見范圍,說到底static還是用來隱藏的。
三、static的第三個作用是默認初始化為0。
其實全局變數也具備這一屬性,因為全局變數也存儲在靜態數據區。在靜態數據區,內存中所有的位元組默認值都是0x00,某些時候這一特點可以減少程序員的工作量。
㈥ static在c語言中是什麼意思
static在c語言中是「靜態」的意思,用於在函數中聲明「靜態變數」用,在每一次調用後,該變數並不在函數返回時立即釋放,變數中保存的值,可以保留到下一次調用時繼續有效。
㈦ C語言編程中「static」是什麼意思
1) 在函數體,一個被聲明為靜態的變數在這一函數被調用過程中維持其值不變。
2) 在模塊內(但在函數體外),一個被聲明為靜態的變數可以被模塊內所用函數訪問,但不能被模塊外其它函數訪問。它是一個本地的全局變數。
3) 在模塊內,一個被聲明為靜態的函數只可被這一模塊內的其它函數調用。那就是,這個函數被限制在聲明它的模塊的本地范圍內使用。
㈧ C語言中static是做什麼用的
static 用來說明靜態變數。如果是在函數外面定義的,那麼其效果和全局變數類似,但是,static定義的變數只能在當前c程序文件中使用,在另一個c代碼裡面,即使使用extern關鍵詞也不能訪問這個static變數。如果是在函數內部定義的,那麼這個變數只初始化一次。