日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

總結C語言的五種存儲類型

遠程學習和教育的概念。在線教程和視頻課程,研究和畢業,科學研討會,數字網絡學習,測試和文學

內存用于存儲程序中的數據,由存儲期、作用域和鏈接表征。存儲期可以是靜態的、自動的或動態分配的。如果是靜態存儲期,在程序開始執行時分配內存,并在程序運行時都存在。如果是自動存儲期,在程序進入變量定義所在塊時分配變量的內存,在程序離開塊時釋放內存。

如果是動態分配存儲期,在調用malloc()(或相關函數)時分配內存,在調用free()函數時釋放內存。作用域決定程序的哪些部分可以訪問某數據。定義在所有函數之外的變量具有文件作用域,對位于該變量聲明之后的所有函數可見。

定義在塊或作為函數形參內的變量具有塊作用域,只對該塊以及它包含的嵌套塊可見。鏈接描述定義在程序某翻譯單元中的變量可被鏈接的程度。具有塊作用域的變量是局部變量,無鏈接。具有文件作用域的變量可以是內部鏈接或外部鏈接。內部鏈接意味著只有其定義所在的文件才能使用該變量。外部鏈接意味著其他文件使用也可以使用該變量。下面是C的5種存儲類別(不包括線程的概念)。

下面是C的5種存儲類別(不包括線程的概念)。

  • 自動:在塊中不帶存儲類別說明符或帶auto存儲類別說明符聲明的變量(或作為函數頭中的形參)屬于自動存儲類別,具有自動存儲期、塊作用域、無鏈接。如果未初始化自動變量,它的值是未定義的。
  • 寄存器——在塊中帶register存儲類別說明符聲明的變量(或作為函數頭中的形參)屬于寄存器存儲類別,具有自動存儲期、塊作用域、無鏈接,且無法獲取其地址。把一個變量聲明為寄存器變量即請求編譯器將其存儲到訪問速度最快的區域。如果未初始化寄存器變量,它的值是未定義的。
  • 靜態、無鏈接——在塊中帶static存儲類別說明符聲明的變量屬于“靜態、無鏈接”存儲類別,具有靜態存儲期、塊作用域、無鏈接。只在編譯時被初始化一次。如果未顯式初始化,它的字節都被設置為0。
  • 靜態、外部鏈接——在所有函數外部且沒有使用static存儲類別說明符聲明的變量屬于“靜態、外部鏈接”存儲類別,具有靜態存儲期、文件作用域、外部鏈接。只能在編譯器被初始化一次。如果未顯式初始化,它的字節都被設置為0。
  • 靜態、內部鏈接——在所有函數外部且使用了static存儲類別說明符聲明的變量屬于“靜態、內部鏈接”存儲類別,具有靜態存儲期、文件作用域、內部鏈接。只能在編譯器被初始化一次。如果未顯式初始化,它的字節都被設置為0。

動態分配的內存由malloc()(或相關)函數分配,該函數返回一個指向指定字節數內存塊的指針。這塊內存被free()函數釋放后便可重復使用,free()函數以該內存塊的地址作為參數。

類型限定符const、volatile、restrict和_Atomic。const限定符限定數據在程序運行時不能改變。對指針使用const時,可限定指針本身不能改變或指針指向的數據不能改變,這取決于const在指針聲明中的位置。volatile限定符表明,限定的數據除了被當前程序修改外還可以被其他進程修改。該限定符的目的是警告編譯器不要進行假定的優化。restrict限定符也是為了方便編譯器設置優化方案。restrict限定的指針是訪問它所指向數據的唯一途徑。

分享到:
標簽:語言
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定