日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言中static静态变量

發布時間:2024/1/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言中static静态变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

靜態變量的說明符是static

static靜態變量屬于靜態存儲方式,其存儲空間是 靜態數據區(也就是存入全局存儲區),靜態數據區的數據在整個程序運行期間一直占用這些內存。也可以認為他的內存地址一直不變。(靜態變量,分配在靜態存儲區,在數據段中。函數退出之后,變量值不變。

屬于靜態存儲方式的量不一定就是靜態變量。 例如:外部變量雖屬于靜態存儲方式,但不一定是靜態變量,必須由 static加以定義后才能成為靜態外部變量,或稱靜態全局變量。

所有全局變量都是靜態變量,而局部變量只有定義時加上類型修飾符static,才為局部靜態變量。

在函數中定義的靜態變量為靜態局部變量,在全局中定義的靜態變量為靜態全局變量。同時static也可以定義函數,表示這個函數只能在此全局中使用。

1、靜態局部變量
在函數中定義的static局部變量,即只能在定義該變量的函數內使用該變量。不論其使用的函數是否被調用,都一直存在。保留上次調用后留下的函數值

出現在函數內部的基本類型的的靜態變量初始化語句只有在第一次調用才執行。而對自動變量賦初值是在函數調用時進行,每調用一次函數重新給一次初值,相當于執行一次賦值語句。

靜態局部變量定義時沒有賦初值自動賦值為0。

2、靜態全局變量
靜態全局變量是指在全局范圍內定義的靜態變量(函數外,程序開始前),也存儲在靜態存儲區。

靜態全局變量與靜態局部變量的區別:
非靜態全局變量:當有多個.C(源)文件的時候,可以作用到多個.C文件。
靜態全局變量只能作用到當前.C(源)文件。在同一源程序的其它源文件中不能使用它(即聲明(extern)該文件或者包含該變量聲明的頭文件中不能使用)。
靜態局部變量只能作用到當前源文件的特定函數內。
靜態局部變量初始化只有一次,但是可以多次賦值。

靜態變量初始化:
在C中,初始化發生在代碼執行之前,編譯階段分配好內存之后,就會進行初始化。.在C++中,初始化時在執行相關代碼時才會進行初始化。主要是由于C++引入對象后,要進行初始化必須執行相應構造函數和析構函數,在構造函數或析構函數中經常會需要進行某些程序中需要進行的特定操作,并非簡單地分配內存。

總結

以上是生活随笔為你收集整理的C语言中static静态变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。