當前位置:首頁 » 編程語言 » c語言的static賦值為0
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言的static賦值為0

發布時間: 2022-12-31 15:57:38

1. c語言中static變數的賦值問題

static int a = 0; // 運行期時初始化一次, 下次再調用時, 不進行初始化工作如下:

printf(「%d」,a);

a++;

}

int main()

{

staticLocalVar(); // 第一次調用, 輸出a=0

staticLocalVar(); // 第二次調用, 記憶了第一次退出時的值, 輸出a=1

return 0;

}

(1)c語言的static賦值為0擴展閱讀

1、static對全局變數的修飾,可以認為是限制了只能是本文件引用此變數。有的程序是由好多.c文件構成。彼此可以互相引用變數,但加入static修飾之後,只能被本文件中函數引用此變數。

2、static對棧變數的修飾,可以認為棧變數的生命周期延長到程序執行結束時。一般來說,棧變數的生命周期由OS管理,在退棧的過程中,棧變數的生命也就結束。

3、但加入static修飾之後,變數已經不再存儲在棧中,而是和全局變數一起存儲。同時,離開定義它的函數後不能使用,但如再次調用定義它的函數時,它又可繼續使用, 而且保存了前次被調用後留下的值。

2. c語言static用法

static是靜態變數,程序運行時,它的值不會被重新初始化,對於這題來說,沒必要把k設成靜態的,一般的變數也能計算出來,因為中間沒有重新初始化的操作

3. c語言中 static uint8 ucState=0是什麼意思

static uint8 ucState=0
static是靜態變數申明字,所以首先變數ucState是一個靜態變數,初始值為0;
uint8在C語言中是沒有這個語句的,所以這之前可能有以下一個申明來定義該宏:
#define uint8 unsigned char
這樣的話,全句的意思是:;申明變數ucState為靜態8位位元組變數,初值為0,一般用於單片機的C51語言中。通用C語言中是沒有這個變數類型的。

4. 為什麼在C語言中靜態變數的初值是0

靜態變數的聲明點似乎相當於全局變數,按照全局變數的初始化規則來初始化為0