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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C语言的一个关键字——static

發布時間:2023/11/27 生活经验 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言的一个关键字——static 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言的一個關鍵字——static

Static在C語言里面有兩個作用,第一個是修飾變量,第二個是修飾函數

1、Static修飾變量

按照作用范圍的不同,變量分為局部變量全局變量。如果用static修飾變量,不論這個變量是全局的還是局部的都是存儲在靜態數據區。下面分開來講:

¨????????? 如果用static修飾全局變量,我們稱其為靜態全局變量。

我們用static修飾全局變量的主要目的就是:使得其作用域僅限于變量被定義的文件中(即從變量定義處到本文件結尾處),其它文件不論通過什么方式都不能訪問。

¨????????? 如果用static修飾局部變量,我們稱其為靜態局部變量。

我們用static修飾局部變量的目的主要有兩個:

1)???????? 在某個函數體里面定義的靜態局部變量,只能在本函數體被訪問,即使同一個文件的其它函數也訪問不了。

2)???????? 靜態局部變量總存儲在靜態數據區,所以即使這個函數運行結束,這個靜態局部變量的值不會被銷毀,函數下次使用時仍然要用到這個值。

?

下面給出一個例程:


?

#include <stdio.h>

?

static int j; ?// 靜態全局變量

int fun1(void)

{

???????? static int i = 0;

???????? i++;

???????? return i;

}

?

int fun2(void)

{

???????? j = 0;

???????? j++;

???????? return j;

}

?

int main(int argc, char *argv[])

{

???????? int k = 0, m = 0, n = 0;

???????? for(k=0; k<10; k++){

?????????????????? m = fun1( );

?????????????????? n = fun2( );

?????????????????? printf("%d,%d\n", m, n);

???????? }

???????? return 0;

}

?

結果:

1,1

2,1

3,1

4,1

5,1

6,1

7,1

8,1

9,1

10,1

?

從例程的運行結果可以看出:

對于fun1( ),運行一次之后,變量i保持了原來的數據,并沒有銷毀,而是在下一次調用的時候繼續使用,所以才會有1、2、3…10這樣的結果。而對于fun2( ),運行一次之后,變量j的值被銷毀了,所以第二次調用結束j仍然保持原值“1”,所以循環十次,每次都是1

?

?

2、Static修飾函數

在函數前加static,則此函數成為靜態函數(內部函數),我們用static修飾函數的主要目的是:用來表示不能被其它文件訪問的一個函數(和用static修飾全局變量的目的一樣,都是不允許其它文件訪問)。這樣一來便有一個好處:程序員不用擔心自己編寫的函數與其他文件的函數同名

?

?

?

對局部靜態變量的特別說明

(1)靜態局部變量數據屬于靜態存儲類別,在靜態存儲區內分配內存單元,在整個程序運行期間都不釋放。而自動變量(即動態局部變量)屬于動態存儲類別,占動態存儲區空間而不占用靜態存儲區空間,函數調用結束后立即釋放空間。

(2)靜態局部變量時在編譯時被賦值的,即自始至終只賦值一次,在程序運行時它已經有初值。以后每次調用函數時不再重新賦初值而只是保留上次函數調用結束時的值。而自動變量賦初值,不是在編譯時進行的,而是在運行時進行,所以每調用一次函數就賦一次初值。

(3)如在定義局部變量時不賦初值,則對靜態局部變量來說,編譯時自動賦一個初值0(對數值型變量)或空字符(對字符變量)。而對自動變量來說,如果不賦初值,則它的值是一個不確定的值。這是由每次動態分配的內存單元不同所決定的。

總結

以上是生活随笔為你收集整理的C语言的一个关键字——static的全部內容,希望文章能夠幫你解決所遇到的問題。

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