c語言中什麼是靜態變數,什麼是動態變數?

2025-07-23 22:55:13 字數 3524 閱讀 7934

1樓:ok洛陽水席

靜態變數在他的作用域裡一直存在,而動態變數是在程式執行過程中建立,隨函式的呼叫需要動態的分配儲存空間,呼叫結束釋放掉的。

2樓:網友

靜態的大小不能改變,動態可以。靜態直接宣告,動態需要new和delete

3樓:網友

全域性變數宣告之前加上static,就是靜態全域性變數。全域性變數和靜態全域性變數都是靜態儲存的;在儲存上無區別。區別在於他們的作用域;全域性變數的作用域是整個源程式,當源程式有多個原始檔組成時,全域性變數在各個源程式檔案都是有效的;而靜態全域性變數怎被限制了作用域,只在定義該變數的原始檔內有用在同一程式的其他原始檔不能使用!

還有靜態全域性變數只初始化一次,防止在其他原始檔呼叫!而全域性變數可以再其他原始檔初始化!!

計算機c語言中「動態變數」和「靜態變數」的區別是什麼?

4樓:風若遠去何人留

靜態變數,就是在定義的時候,有static 修飾的變數,形式為static type var_name = init_value;

而動態變數,形式為。

type var_name = init_value;

即沒有static 修飾。其中的=init_value均可省略。

區分定義在函式外的全域性變數,和函式內的區域性變數,作用域,生命週期,及無顯式初始化時的初始值,均有區別。

1 動態全域性變數:

作用域為整個專案,即最終編譯成可執行檔案的所有檔案中均可以使用動態全域性變數。

生命週期為從程式執行到程式退出,即貫穿整個執行時間。

無顯式初始化時預設初始化值為0。

2 靜態全域性變數:

作用域為當前檔案,從定義/宣告位置到檔案結尾。

生命週期為從程式執行到程式退出,即貫穿整個執行時間。

無顯式初始化時預設初始化值為0。

3 動態區域性變數:

作用域為當前函式,從定義位置,到其所在的{}的結束位置。

生命週期為從函式呼叫到函式退出。

無顯式初始化時預設初始化值為隨機值。

4 靜態區域性變數:

作用域為當前函式,從定義位置,到其所在的{}的結束位置。

生命週期為從程式執行到程式退出,即貫穿整個執行時間,當下次函式呼叫時,靜態區域性變數不會被再次初始化,而是沿用上次函式退出時的值。

無顯式初始化時預設初始化值為0。

c語言裡面靜態變數static是什麼作用啊?

5樓:匿名使用者

靜態資料區的變數只能初始化一次,所以。

static int isum=3;

這條語句只會在第一次呼叫函式的時候生效,第二次會被忽略。

6樓:網友

static關鍵字在c語言中用於宣告乙個靜態的區域性變數。

作用:有時希望函式中的區域性變數的值在函式呼叫結束後不消失而繼續保留原值,即其佔用的儲存單元不釋放,在下一次再呼叫該函式時,該變數已有值(就是上一次函式呼叫結束時的值)。這時就應該指定該區域性變數為「靜態區域性變數」,用關鍵字static進行宣告。

用靜態儲存要多佔記憶體(長期佔用不釋放,而不能像動態儲存那樣乙個儲存單元可以先後為多個變數使用,節約記憶體),而且降低了程式的可讀性,因此若非必要,不要多用靜態區域性變數。

c語言中靜態變數與動態變數的定義與區別

7樓:網友

動態變數和靜態變數定義和區別如下:

1、定義上,靜態變數比動態變數多乙個關鍵字static,比如:

動態變數:int i;

靜態變數:static int i;

2、動態變數在子程式中,每次呼叫時都會從零開始,不會保留原有資料,靜態變數呼叫時原有值不會發生改變,比如:

main()

void fun() //輸出結果為11111void fun1() //輸出結果為12345

8樓:網友

靜態變數的初值是在編譯時賦予的,不是在程式執行期間對其初始化,即只初始化一次,如果在定義靜態變數時不賦初值,編譯系統自動賦予初值(數值變數賦0,字元變數賦空字元),而對動態變數,編譯系統不會自動賦初值。

定義乙個靜態整型變數 static int a定義乙個動態整型變數 auto int a 或者 int a若省略auto 所定義的變數為動態變數。

在c語言中靜態變數和動態變數的區別,應該如何理解

9樓:蓋寄雲騫

靜態變數就是程式在執行前就已經可以確定的位址的變數。普通變數則是在程式執行後才分配的位址的變數。所以靜態變數對整個程式都是可見的,普通變數只能被給其分配位址的模組使用,超出這個模組普通變數的生命週期結束。

c語言中靜態變數與動態變數的定義與區別

10樓:星蘭英童鳥

動態變數和靜態變數定義和區別如下:

1、定義上,靜態變數比動態變數多乙個關鍵字static,比如:

動態變數:int

i;靜態變數:static

inti;2、動態變數在子程式中,每次呼叫時都會從零開始,不會保留原有資料,靜態變數呼叫時原有值不會發生改變,比如:

main()

voidfun()

輸出結果為11111

voidfun1()

輸出結果為12345

11樓:宰桂枝汗媚

靜態變數的初值是在編譯時賦予的,不是在程式執行期間對其初始化,即只初始化一次,如果在定義靜態變數時不賦初值,編譯系統自動賦予初值(數值變數賦0,字元變數賦空字元),而對動態變數,編譯系統不會自動賦初值。

定義乙個靜態整型變數。

static

inta定義乙個動態整型變數。

autointa

或者inta若省略auto

所定義的變數為動態變數。

c語言中靜態變數與動態變數的定義與區別

12樓:乜飛煙但韶

動態變數和靜態變數定義和區別如下:

1、定義上,靜態變數比動態變數多乙個關鍵字static,比如:

動態變數:int

i;靜態變數:static

inti;2、動態變數在子程式中,每次呼叫時都會從零開始,不會保留原有資料,靜態變數呼叫時原有值不會發生改變,比如:

main()

voidfun()

輸出結果為11111

voidfun1()

輸出結果為12345

13樓:謝子悅薛仲

靜態變數的初值是在編譯時賦予的,不是在程式執行期間對其初始化,即只初始化一次,如果在定義靜態變數時不賦初值,編譯系統自動賦予初值(數值變數賦0,字元變數賦空字元),而對動態變數,編譯系統不會自動賦初值。

定義乙個靜態整型變數。

static

inta定義乙個動態整型變數。

autointa

或者inta若省略auto

所定義的變數為動態變數。

c語言中for是什麼意思C語言中for是什麼意思?

在c語言中,for語句使用最為靈活,它的一般形式為 for 表示式1 表示式2 表示式3 語句它的執行過程如下 先求解表示式1。求解表示式2,若其值為真 非0 則執行for語句中指定的內嵌語句,然後執行下面第3 步 若其值為假 0 則結束迴圈,轉到第5 步。求解表示式3。轉回上面第2 步繼續執行。迴...

C語言中74是是代表什麼意思,C語言中,757475,的區別

c語言中7 4的意思是7整除,也就是7除以4所得商的整數部分,結果應該為1。這裡已有答覆 bai c語言中7 4的意思du是zhi7整除,也就是7除以4所得dao商的整數部分,結果應內該為1。容 7除以4的結果應是1.75,所以7 4結果的整數部分是1,而不是7 3,7 3的含義是7整除3的餘數,它...

c語言中定義無符號整型變數有什麼作用

整型有無bai 符號 unsigned 和有符號 signed 兩種du型別,在預設情況下聲zhi明的dao整型變數都是有符號的型別 版char有點特別 如果需聲 權明無符號型別的話就需要在型別前加上unsigned。無符號版本和有符號版本的區別就是無符號型別能儲存2倍於有符號型別的資料,比如16位...