C語言 關鍵字 static(宣告靜態變數)

2021-10-11 15:36:45 字數 730 閱讀 5795

static在c語言裡面有兩個作用,第乙個是修飾變數,第二個是修飾函式

按照作用範圍的不同,變數分為區域性變數和全域性變數。如果用static修飾變數,不論這個變數是全域性的還是區域性的都是儲存在全域性/靜態資料區

具體程式如下:

#include 

void

example

(void

)int main

(void

)

執行結果如下:

n=

10n++=11

m=10

m++=

11--

----

----

----

----

--n=

10n++=11

m=11

m++=

12--

----

----

----

----

--n=

10n++=11

m=12

m++=

13請按任意鍵繼續.

..

全域性變數定義在函式體外部,在全域性資料區分配儲存空間,且編譯器會自動對其初始化。

函式的使用方式與全域性變數類似,在函式的返回型別前加上static,就是靜態函式。其特性如下:

C語言關鍵字Static

c語言中static的語義 1.static變數 1 區域性 a.靜態區域性變數在函式內定義,生存期為整個源程式,但作用域與自動變數相同,只能在定義該變數的函式內使用。退出該函式後,儘管該變數還繼續存在,但不能使用它。b.對基本型別的靜態區域性變數若在說明時未賦以初值,則系統自動賦予0值。而對自動變...

c語言static關鍵字

以前一直覺得static關鍵字僅僅是定義乙個靜態的變數,今天在看書的時候發現一切沒那麼簡單,遂決定記錄下來。1.static關鍵字指明變數是乙個靜態變數,即static修飾的區域性變數並不是分配在棧中,而是分配在程式的靜態區中,所以在函式呼叫後其記憶體並不會被釋放。這裡需要注意乙個點,也就是說並不是...

C語言 關鍵字static

一 修飾區域性變數 靜態區域性變數 修飾前 include void test intmain return0 修飾後 include void test intmain return0 結論 static修飾區域性變數改變了變數的生命週期,讓靜態區域性變數出了作用域依然存在,到程式結束,生命週期才...