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

歡迎訪問 生活随笔!

生活随笔

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

生活经验

变量的属性(全局变量、局部变量、动态变量、静态变量等)

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 变量的属性(全局变量、局部变量、动态变量、静态变量等) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

變量的屬性?

1、變量的分類

l?????????根據作用域:可分為全局變量和局部變量。

l?????????? 根據生存周期:可分為靜態存儲方式和動態存儲方式,具體地又分為自動的(auto)、靜態的(static)、寄存器的(register)、外部的(extern)。

靜態存儲方式是指在程序運行期間分配固定的存儲空間的方式,動態存儲方式是在程序運行期間根據需要進行動態的分配存儲空間的方式

?

2、變量的作用域和存儲類別的關系

每一個變量均有作用域存儲類別兩個屬性這些屬性共同用于描述一個變量,這些不同類型的變量與存儲位置的關系如下:

l????????? 外部變量(全局變量)、靜態外部變量、靜態局部變量存儲在靜態存儲區。

l????????? 自動局部變量(局部變量默認為自動局部變量)、函數形參存儲在動態存儲區(即棧區)

l????????? 不論是靜態存儲區還是動態存儲區均屬于內存中的用戶區。

l????????? 而寄存器變量是存儲在CPU寄存器中的而不是內存中。

?

3、與作用域相關的幾個屬性:

l????????? 局部變量:在一個函數內部定義的變量是內部變量,它只在本函數范圍內有效,也就是說只有在本函數內才能使用它們,在此函數以外是不能使用這些變量的,這種類型的變量就稱為局部變量

l????????? 全局變量:在函數外定義的變量,可以為本源文件中其它函數所公用,有效范圍為從定義變量的位置開始到本源文件結束,這種類型的變量就稱為全局變量

?

4、與存儲類型相關的幾個屬性:

l????????? atuo在聲明局部變量時,若不指定 static,默認均是 auto,這類變量都是動態分配存儲空間的,數據存儲在動態存儲區中。

l???????? static在聲明局部變量時,使用關鍵字 static 將局部變量指定為靜態局部變量,這樣在函數調用結束后不消失而保留原值,即占用的存儲單元不釋放,在下一次函數調用時,該變量已有值就是上次函數調用結束時的值。

l????????? register在聲明動態局部變量或者函數形參時,可將變量聲明為register這樣編譯系統就會為變量分配一個寄存器而不是內存空間,通過這種方式可提升對某些局部變量頻繁調用的程序的性能。寄存器運算速度遠高于內存

l????????? extern:用于擴展全局變量的作用域。

1)???????? 比如如果函數想引用一個外部變量,但該外部變量在該函數后定義,那么這個函數需要使用 extern 來聲明變量,這樣才能使用在該函數后面定義的全局變量。

2)???????? 此外,extern 還可以在多文件的程序中聲明外部變量。

總結

以上是生活随笔為你收集整理的变量的属性(全局变量、局部变量、动态变量、静态变量等)的全部內容,希望文章能夠幫你解決所遇到的問題。

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