當前位置:首頁 » 編程語言 » c語言static作用

c語言static作用

發布時間: 2022-09-11 22:30:51

A. static在c語言中是什麼意思

static在c語言中是「靜態」的意思,用於在函數中聲明「靜態變數」用,在每一次調用後,該變數並不在函數返回時立即釋放,變數中保存的值,可以保留到下一次調用時繼續有效。

B. c語言中static 到底有啥作用啊

static是靜態聲明,用static聲明的變數生存期比普通變數長,因此f()函數多次運行靜態變數的值一直存在

C. C語言static的作用。

在C語言中,static的字面意思很容易把我們導入歧途,其實它的作用有三條。
(1)第一個作用:隱藏。
當我們同時編譯多個文件時,所有未加static前綴的全局變數和函數都具有全局可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個源文件,一個是a.c,另一個是main.c。
下面是a.c的內容
#include<cstdio>增加這條語句
char a = 『A『; // global variable
void msg()
{
printf("Hello\n");
}
你可能會問:為什麼在a.c中定義的全局變數a和函數msg能在main.c中使用?前面說過,所有未加static前綴的全局變數和函數都具有全局可見性,其它的源文件也能訪問。此例中,a是全局變數,msg是函數,並且都沒有加static前綴,因此對於另外的源文件main.c是可見的。
如果加了static,就會對其它源文件隱藏。例如在a和msg的定義前加上static,main.c就看不到它們了。利用這一特性可以在不同的文件中定義同名函數和同名變數,而不必擔心命名沖突。Static可以用作函數和變數的前綴,對於函數來講,static的作用僅限於隱藏,而對於變數,static還有下面兩個作用。
(2)static的第二個作用是保持變數內容的持久。存儲在靜態數據區的變數會在程序剛開始運行時就完成初始化,也是唯一的一次初始化。共有兩種變數存儲在靜態存儲區:全局變數和static變數,只不過和全局變數比起來,static可以控制變數的可見范圍,說到底static還是用來隱藏的。
(3)static的第三個作用是默認初始化為0。其實全局變數也具備這一屬性,因為全局變數也存儲在靜態數據區。在靜態數據區,內存中所有的位元組默認值都是0x00,某些時候這一特點可以減少程序員的工作量。
最後對static的三條作用做一句話總結。首先static的最主要功能是隱藏,其次因為static變數存放在靜態存儲區,所以它具備持久性和默認值0。
下面是main.c的內容
除了頭文件,需要聲明函數:void msg();
int main(void)
{
extern char a; // extern variable must be declared before use
printf("%c ", a);
(void)msg();
return 0;
}

D. C語言中static是做什麼用的

static 用來說明靜態變數。如果是在函數外面定義的,那麼其效果和全局變數類似,但是,static定義的變數只能在當前c程序文件中使用,在另一個c代碼裡面,即使使用extern關鍵詞也不能訪問這個static變數。如果是在函數內部定義的,那麼這個變數只初始化一次。

E. C語言中static函數的具體作用是什麼

C語言中static函數的具體作用是:

  1. 讓一個變數長期有效,而不管其是在什麼地方被申明。

  2. 避免多個文件使用了相同的變數名而導致沖突。

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

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

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

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

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

(6)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(計算機高級語言)

G. c語言中static 到底有啥作用啊

在C語言中,static的作用有三個,分別如下:
1、隱藏;
當同時編譯多個文件時,所有未加static前綴的全局變數和函數都具有全局可見性。
2、保持變數內容的持久;
存儲在靜態數據區的變數會在程序剛開始運行時就完成初
始化,也是唯一的一次初始化。
3、默認初始化為0;
在靜態數據區,內存中所有的位元組默認值都是0x00,某些
時候這一特點可以減少程序員的工作量。

H. C語言中static是做什麼用的

最主要有兩點用途。

  1. 讓一個變數長期有效,而不管其是在什麼地方被申明。比如:

int fun1()

{

static int s_value = 0;

....

}

那麼fun1不管在什麼地方被調用,當函數退出後,s_value最後的值將一直會被系統保存(相當於一個全局變數),下次s_value再被用到時,也即當fun1()再次被調用時,s_value初始值將是最近被保存過的值(請注意s_value初始化操作只會被執行一次,即上述s_value =0 這個語句)。

2.避免多個文件使用了相同的變數名而導致沖突

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

熱點內容
巴法雲伺服器帶寬 發布:2025-01-12 13:15:26 瀏覽:676
搭建國外伺服器需要多少錢 發布:2025-01-12 13:08:01 瀏覽:827
我的世界mod伺服器開荒 發布:2025-01-12 13:07:10 瀏覽:757
sql優化書 發布:2025-01-12 13:07:09 瀏覽:455
高校網站伺服器搭建與維護論文 發布:2025-01-12 13:06:31 瀏覽:711
sqlserver實例沒有 發布:2025-01-12 12:57:18 瀏覽:252
代碼文件伺服器地址怎麼寫 發布:2025-01-12 12:50:47 瀏覽:760
java中方法與 發布:2025-01-12 12:50:13 瀏覽:655
如何快速查找c語言編譯時的錯 發布:2025-01-12 12:49:56 瀏覽:32
看門狗上傳病毒 發布:2025-01-12 12:32:54 瀏覽:326