C語(yǔ)言static詳解
1、C語(yǔ)言中的static關(guān)鍵字具有兩種主要功能。第一種功能是使變量在函數(shù)退出后仍然保持其值,而不論該變量是在何處被聲明。例如,在函數(shù)fun1()中聲明static int s_value = 0;,意味著每次fun1()被調(diào)用時(shí),s_value的初始值將保持為最后一次退出函數(shù)時(shí)的值。
2、static在c語(yǔ)言中是私有、靜態(tài)意思。用于在函數(shù)中聲明“靜態(tài)變量”用,在每一次調(diào)用后,該變量并不在函數(shù)返回時(shí)立即釋放,變量中保存的值,可以保留到下一次調(diào)用時(shí)繼續(xù)有效。私有就是隱藏。static函數(shù)只能聲明后的本文中調(diào)用。static全局變量只能聲明后的本文中調(diào)用。
3、static意思是靜態(tài)的。變量分常量和變量。只有常量只能賦值一次。是不是只能賦值一次是靠最后兩個(gè)字(即常量或者變量)來(lái)區(qū)分的。static變量(如:static int n)即靜態(tài)變量。靜態(tài)變量也是變量,只有靜態(tài)常量才只能賦值一次。變量只用定義一次。建議LZ多看看基本語(yǔ)法。
4、當(dāng)在函數(shù)外部定義變量時(shí),使用“static”修飾的變量具有與全局變量相似的特性,即該變量只能在當(dāng)前C程序文件中被訪問(wèn)和使用。這種作用域限制了變量的可見(jiàn)性和生命周期,使其僅在當(dāng)前文件內(nèi)有效。另一方面,如果“static”變量在函數(shù)內(nèi)部定義,其行為將發(fā)生顯著變化。
5、在C語(yǔ)言編程中,static關(guān)鍵字具有三個(gè)主要用途。首先,它能夠?qū)崿F(xiàn)隱藏功能。當(dāng)我們?cè)诙鄠€(gè)源文件中編譯代碼時(shí),未加static前綴的全局變量和函數(shù)具有全局可見(jiàn)性。例如,假設(shè)我們有兩個(gè)源文件,一個(gè)是a.c,另一個(gè)是main.c。