c語言小結 全域性變數與靜態本地變數

2021-10-02 23:41:26 字數 844 閱讀 7168

一.全域性變數

1.定義:定義在函式外面的變數是全域性變數。

2.初始化:初始化在main函式之前,沒做初始化的全域性變數會得到0值。

3.如果函式內部存在於全域性變數同名的變數,則全域性變數會被隱藏。

二.靜態本地變數

1.定義:在本地變數定義時加上static修飾符

2.作用:當函式離開的時候,靜態本地變數會繼續存在並保持其值。

三.二者的聯絡

1.全域性變數具有全域性的生存期和作用域,與任何函式無關,在函式內部都可以。本地變數有本地的作用域與生存期,靜態本地變數有全域性的生存期,本地作用域。

2.區域性靜態變數是特殊的全域性變數,位於相同的記憶體區域。

3.返回本地變數是危險的

//用本地變數的位址作為返回值不可取 

#include

int*f

(void);

voidg(

void);

intmain

(int argc,

char

const

*ar**)

int*f(

void

)voidg(

void

)

注意:應儘量減少全域性變數的使用

c語言全域性變數與靜態本地變數

目錄 全域性變數 靜態本地變數 一 定義 定義在函式外面的變數是全域性變數 全域性變數具有全域性的生存期和作用域 他們與任何函式都無關 在任何函式內部都可以使用他們 實驗 int f void int gall 12 乙個全域性變數 也就是全域性變數一改都改 二 全域性變數的初始化 沒有做初始化的全...

C 靜態全域性變數與普通全域性變數

一 儲存區域 1 棧 由編譯器在需要的時候分配,在不需要的時候自動清除的變數的儲存區域。通常儲存區域性變數,函式引數。2 堆 由new分配的記憶體塊,需要手動釋放。如果程式設計師沒有手動釋放,在程式執行結束後,作業系統自動 3 自由儲存區 由malloc等分配的記憶體塊,與堆相似,用free來釋放。...

c 全域性變數 靜態全域性變數

全域性變數是靜態儲存方式,靜態全域性變數也是靜態儲存方式,這兩者在儲存方式上並無不同。區別 雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,靜態全域性變數在各個原始檔中都是有效的。靜態區域性變數則限制了其作用域,只在定義該變數的原始檔內有效,在同一源程式的其它原始檔中不能...